私は JSON API クライアントに取り組んでいます。目標は、以降のクラスが継承できるメソッドToJSON(..)
およびを使用して基本型を作成することです。FromJSON(..)
ToJSON(..)
Scott Guthrie によるブログ記事 ( http://bit.ly/Ppgd3 )に従って、比較的単純です。に苦労していFromJSON(..)
ます。基本的なコードは次のとおりです。
public class BaseType
{
public virtual void FromJson(System.Type type, string input)
{
// What? How?
}
public virtual string ToJson()
{
JavaScriptSerializer serial = new JavaScriptSerializer();
return serial.Serialize(this);
}
public virtual string ToJson(string verb)
{
JavaScriptSerializer serial = new JavaScriptSerializer();
string value = serial.Serialize(this);
return string.Concat("{", "\"", verb.Trim(), "\":", value, "}");
}
}
これを行う方法は with でDeserialize(..)
あり、クラスの外で機能します。私の質問は、継承可能な方法で、Deserialize(..)
以下のコマンドを上記のクラス内で動作させる方法です。FromJSON(..)
public class InheritedObject : BaseType { }
System.Web.Script.Serialization.JavaScriptSerializer serial = new System.Web.Script.Serialization.JavaScriptSerializer();
InheritedObject foo = serial.Deserialize<InheritedOjbect>(jsonString);
言語は C#、フレームワークは .NET 4.0、IDE は Visual Studio 2012 です。