wcf请求参数在到达服务时为null

时间:2016-02-26 09:15:03

标签: c# wcf parameter-passing

我正在开发一个wcf Web服务。它在单元测试期间正常工作。几天前,我从'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

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

1 个答案:

答案 0 :(得分:0)

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

我已经定义了我的课程如下:

 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;
            }
        }