【发布时间】:2009-04-09 14:18:39
【问题描述】:
我不是 100% 确定正确的术语是什么,但是..
我有一个名为 InParams 的类,它有两个字段,一个字符串和一个 long 以及它们对应的属性访问器。它们分别用 [DataContract] 和 [DataMember] 装饰。
我有一个名为 void Test(InParams inParams) 的 WCF 服务方法
使用 svcutil 生成的代理很好,我可以设置 long 字段,但是当执行服务方法时,long 字段始终为 0,即使我明确设置了 long 字段。我看了看肥皂信封,没有看到我的长字段的标签。
当我将长字段更改为字符串字段时,它会被序列化。对于整数也是如此。
我是否缺少某个属性或什么?
【问题讨论】:
-
在您生成的代理类中是否有一个名为 NameOfYourLongFieldSpecified 的布尔属性?
-
我遇到了与上述相同的问题。在我将 WebAPI 框架添加到现有的 ASP.NET Web 窗体应用程序之前,反序列化工作正常。 API 方法在内部调用服务层中的 WCF 方法。应用程序的其他部分调用 WCF 方法进行数据检索,并具有许多原始值类型。添加 WebAPI 框架后,反序列化失败(使用 TraceViewer 跟踪请求并且参数具有默认值 - 0)。删除了 WebAPI 框架,一切恢复正常。有人遇到过这样的问题吗?
-
@Kwan Cheng。你找到解决问题的方法了吗。似乎没有什么对我有用,我不得不使用 WCF REST 框架 (webHttpBinding) 来满足我的需求,这就像退后一步一样。
标签: wcf serialization