2010-12-20 154 views
4

我正在使用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

的可能重複[?JSON.NET - 如何反序列化接口的實例集合(http://stackoverflow.com /問題/ 15880574/JSON淨如何對反序列化信息收集的接口,實例) – nawfal 2014-07-20 12:03:46

回答

0

IPEN是一個接口,而不是一個類,這意味着它不能被實例化。基本上你需要的是一個實現IPen接口的類(我們稱之爲Pen)。然後,您應該能夠用Pen替換Json字符串中的IPen,並且Json.Net將能夠實例化該對象。

只是要清楚,你的筆類應該是這個樣子:

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