2016-02-26 43 views
0

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

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

任何人都可以在这里指导我。在此先感谢

+1

请张贴一些相关的代码来复制问题。 –

回答

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

我不知道是什么原因造成了这个问题,但我计划了解一下。如果我得到任何东西,将在这里发布 – dlearner