在.Net 2中使用WCF时,int属性为0

时间:2012-06-12 13:24:35

标签: wcf

我在.Net 4中有一个带有BasicHttpBinding的WCF服务的MVC项目。

在.Net 2中使用此服务时,如果属性为int,则到达的值为0。

如果它是一个字符串,那就好了。

在.Net 4中建立新项目,使用相同的服务并使用确切的实现(如.Net 2)==> int值是正确的。

为什么?

谢谢!

1 个答案:

答案 0 :(得分:6)

我敢打赌你有一个具有实际int属性的数据合约:

public int YourProperty ......

以及旁边的YourPropertySpecified财产:

public bool YourPropertySpecified ......

由于int不能为空,WCF无法区分您是否已定义值 - 您需要告诉它。

因此,如果您使用int属性并为其设置值 - 需要将其附带的YourPropertySpecified属性设置为true:

yourData.YourProperty = 42;
yourData.YourPropertySpecified = true;

通过这个额外的步骤,int值应该很好地到达服务器