我在.Net 4中有一个带有BasicHttpBinding的WCF服务的MVC项目。
在.Net 2中使用此服务时,如果属性为int,则到达的值为0。
如果它是一个字符串,那就好了。
在.Net 4中建立新项目,使用相同的服务并使用确切的实现(如.Net 2)==> int值是正确的。
为什么?
谢谢!
答案 0 :(得分:6)
我敢打赌你有一个具有实际int
属性的数据合约:
public int YourProperty ......
以及旁边的YourPropertySpecified
财产:
public bool YourPropertySpecified ......
由于int
不能为空,WCF无法区分您是否已定义值 - 您需要告诉它。
因此,如果您使用int
属性并为其设置值 - 也需要将其附带的YourPropertySpecified
属性设置为true:
yourData.YourProperty = 42;
yourData.YourPropertySpecified = true;
通过这个额外的步骤,int
值应该很好地到达服务器