jQuery.ajax を使用して AJAX リクエストをサーバーに送信しました。「データ」フィールドには、ClientMessage タイプに対応する JSON 文字列が入力されていますが、データがメソッドのメイン パラメータに到達していません。デバッグ時にメソッドが実行されると、ClientMessage のすべてのメンバーは ProcessRequest の data パラメータで null になります。
ClientMessage クラスのメンバーは、クラス自体の DataContract 属性と共に DataMember(Name="membername") 属性で修飾された、単純な自動実装の get/set 文字列プロパティです。クライアント側では、Chrome の開発者ツールは、AJAX リクエストのデータ オブジェクトが有効な JSON であることを示しており、リクエスト ビューアーでそれを展開して、正しいオブジェクトとメンバーが送信されていることを確認できます。
ClientMessage データ インスタンスがすべてのメンバーに対して null 値で到着する理由がわかりません (ちなみに、これらはすべて単純な文字列です)。
[OperationContract]
[WebInvoke(Method="POST",BodyStyle=WebMessageBodyStyle.Wrapped,RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json)]
public ServerResponse ProcessRequest( ClientMessage data )
{
//all members of "data" parameter are null, why?