我正在开发一个 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, "}");
}
}
现在做到这一点的方法是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。