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