3

これは些細なことに違いありませんが、私はそれを成し遂げることができないようです。次のデータ コントラクト クラスがあるとします。

public class SampleItem
{
    public int Id { get; set; }
    public string StringValue { get; set; }
}

私のWCFサービスによってJSONに逆シリアル化されると、次の出力が得られます。

[{"Id":1,"StringValue":"Hello"}]

クラス名も含める方法はありますか?すなわち:

"SampleItem": [{"Id":1,"StringValue":"Hello"}]
4

1 に答える 1

3

次のようなことを試すことができます:

private dynamic AddClassName(SampleItem item)
{
      return new {SampleItem = item};
}

var item = new SampleItem {Id = 1, StringValue = "Hello"};
dynamic itemClassName = AppendClassName(item);
string json = new JavaScriptSerializer().Serialize(itemClassName);
Debug.WriteLine(json);

編集 - これはすべてのタイプで機能します:

private static string GetJsonWrapper<T>(T item)
{
    string typeName = typeof(T).Name;
    string jsonOriginal = new JavaScriptSerializer().Serialize(item);
    return string.Format("{{\"{0}\":{1}}}", typeName, jsonOriginal);
}
于 2012-04-26T12:12:57.207 に答える