6

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

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

如果它是一个字符串,那就没问题了。

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

为什么?

谢谢!

4

1 回答 1

6

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

public int YourProperty ......

以及YourPropertySpecified旁边的一个属性:

public bool YourPropertySpecified ......

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

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

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

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

于 2012-06-12T13:55:50.577 回答