我正在使用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是接口或抽象类,无法立即显示。
如何克服此错误?
谢谢!
答案 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.
}