如何创建对象的实例?

时间:2010-12-20 22:31:33

标签: c# serialization interface json.net

我正在使用Json.Net库将对象转换为json并返回到对象。

我有一个界面:

public interface IGoods
{
    List<IPen> Pens { get; set; }
    List<IPencil> Pencils{ get; set; }
    void Deserialize(String json);

}

实现:

new public void Deserialize(String json)
    {
        JsonConvert.DeserializeObject<Goods>(json);
    }

我得到的明显错误是:无法创建Project.IPen类型的实例。 Type是接口或抽象类,无法立即显示。

如何克服此错误?

谢谢!

3 个答案:

答案 0 :(得分:1)

根据文档,您需要编写一些逻辑来告诉Json.Net如何创建对象 - http://james.newtonking.com/projects/json/help/CustomCreationConverter.html

答案 1 :(得分:0)

答案 2 :(得分:0)

IPen是一个接口,而不是一个类,这意味着它无法实例化。基本上你需要的是一个实现IPen接口的类(我们称之为Pen)。然后,您应该能够使用Pen替换Json字符串中的IPen,并且Json.Net将能够实例化该对象。

为了清楚起见,你的Pen类看起来应该是这样的:

public class Pen: IPen
{
//Interface implementation here.
}