【问题标题】:wcf request parameter is null when it reaches servicewcf 请求参数到达服务时为空
【发布时间】:2016-02-26 09:15:03
【问题描述】:

我正在开发一个 wcf 网络服务。它在单元测试期间工作正常。几天前,我将默认命名空间从“tempuri”更改为以下链接中的说明:http://blog.rebuildall.net/2010/11/10/wcf_service_namespaces,并且还向数据成员添加了“Order”属性,例如请求和响应类的[DataMember(Order = 1)]。现在在一个 OperationContract 中,一些参数在服务器端被读取为 null,即使值是在客户端传递的。我还注意到一些 OperationContracts 的响应显示空标签,而这些标签中应该有值。

在搜索中,我发现博客有类似的问题,但导致他们出现问题的原因是客户端和服务器端的参数名称不匹配。博客链接:http://blog.functionalfun.net/2009/09/if-your-wcf-service-is-unexpectedly.html

任何人都可以在这里指导我。提前致谢

【问题讨论】:

  • 请发布一些相关代码来复制问题。

标签: c# wcf parameter-passing


【解决方案1】:

我不知道其他人是否像我一样设法得到这个错误,但这就是问题所在:

我已经定义了我的类,如下所示:

 public class CompositeType
    {
      private  bool boolValue;
      private  string stringValue = "";

        [DataMember]
        public bool BoolValue
        {
            get { return boolValue; }
            set { boolValue = value; }
        }

        [DataMember]
        public string StringValue
        {
            get { return stringValue; }
            set { stringValue = value; }
        }
    }

通过删除这些变量声明并使用自动属性语法,我能够解决这个问题。即喜欢:

 public class CompositeType
        {      

            [DataMember]
            public bool BoolValue
            {
                get;
                set;
            }

            [DataMember]
            public string StringValue
            {
                get;
                set;
            }
        }

【讨论】:

  • 我首先不知道是什么导致了这个问题,但我打算找出答案。如果我得到任何东西会在这里发布:)
猜你喜欢
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-10
相关资源
最近更新 更多