我有一个服务从WebApp中托管的代理接收数据。 DataMembers设置为Order = *,我也尝试添加isRequired = true。问题是在序列化和反序列化的60个信息字段中,相同的3个字符串字段始终缺失(空)。我已经运行调试,它向我显示数据完整地从客户端浏览器到代理服务(从JSON序列化)。代理服务然后将其发送到Windows服务,其中3个字段在反序列化后丢失。WCF DataContract反序列化缺少3个字符串字段,即使对于订单集
我试着设置字段顺序不同,但似乎没有任何工作。它始终是3个缺少字段的简单字符串,通常不超过10-20个字符。还值得一提的是,这些麻烦的DataMembers正确地填充在该程序的所有其他领域。
代理服务代码如下
public TransactionResult Update(MyObj obj, String ItemOne, String ItemTwo)
{
MyService.MyServiceClient proxy = new MyService.MyServiceClient("WSHttpBinding_IMyService");
proxy.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
TransactionResult result = proxy.Update(obj, ItemOne, ItemTwo);
proxy.Close();
return result;
}
Windows服务代码是
[OperationBehavior(Impersonation = ImpersonationOption.Required)]
public TransactionResult Update(MyObj obj, String ItemOne, String ItemTwo)
{obj is missing same 3 values at this point...}
对象的数据成员
[DataMember(Order = 56)]
public String ItemTwo
{
get
{
...
}
set
{
...
}
}