WebAppでホストされているプロキシからデータを受け取るサービスがあります。 DataMembersはOrder = *で設定され、isRequired = trueを追加しようとしました。問題は、60のフィールドの情報がシリアライズされ、デシリアライズされ、同じ3つのStringフィールドが一貫して欠落していることです(null)。私はデータがクライアントブラウザからプロキシサービス(JSONからシリアライズされている)までそのままであることを示すデバッグを実行しました。プロキシサービスは、Windowsサービスに送信します。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...}
オブジェクトのDataMembers
[DataMember(Order = 56)]
public String ItemTwo
{
get
{
...
}
set
{
...
}
}