【发布时间】:2010-11-25 09:37:07
【问题描述】:
我有一项服务从托管在 WebApp 中的代理接收数据。 DataMembers 设置为 Order=*,我也尝试添加 isRequired=true。问题是在序列化和反序列化的 60 个信息字段中,相同的 3 个字符串字段始终缺失(空)。我已经运行调试,显示数据从客户端浏览器到代理服务完好无损(从 JSON 序列化)。然后代理服务将其发送到反序列化后缺少 3 个字段的 Windows 服务。
我尝试过以不同方式设置字段的顺序,但似乎没有任何效果。它总是相同的 3 个缺少字段的简单字符串,通常不超过 10-20 个字符。还值得一提的是,这些麻烦的 DataMember 已正确填充到程序的所有其他区域。
代理服务代码如下
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
{
...
}
}
【问题讨论】:
标签: .net xml wcf serialization deserialization