我正在开发一个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
任何人都可以在这里指导我。提前致谢
答案 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;
}
}