私はこのようなJavascriptSerializer
カスタムで使用していますJavascriptConverter
:
public override IDictionary<string, object> Serialize(object obj, JavaScriptSerializer serializer)
{
SomeObjectModel TheObject = obj as SomeObjectModel;
Dictionary<string, object> OutputJson = new Dictionary<string, object>();
OutputJson.Add("SomeKey", SomeObjectModel.SomeProperty);
return OutputJson;
}
実行時に動的に変更できるようにしたいSomeKey
ので、キーの辞書を作成し、この辞書をシリアライザーに渡し、次のようにすることを考えました。
OutputJson.Add(TheJsonDictionary.SomeKey, SomeObjectModel.SomeProperty);
ただし、次のように関数呼び出しにパラメーターを追加すると:
public override IDictionary<string, object> Serialize(Dictionary<string, string> TheJsonDictionary, object obj, JavaScriptSerializer serializer)
コンパイル時にエラー メッセージが表示されます。これで、このエラーが発生する理由がわかりました (抽象メソッドは 2 つのパラメーターで定義されており、3 を渡しています)。キーをエンコードするために辞書を渡すことができるように、これを回避する方法を考えています。
ありがとう。