2010-12-20 7 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. Тип - это интерфейс или абстрактный класс и не может быть создан.

Как преодолеть эту ошибку?

Спасибо!

+0

возможно дубликат [? JSON.NET - как десериализация коллекции интерфейсы-экземпляры] (http://stackoverflow.com/вопросы/15880574/JSON-нет- как к десериализации сбора-оф-интерфейс-экземпляров) – nawfal

ответ

0

ИПЕН является интерфейс, а не класс, а это значит, что не может быть инстанцированным. В основном вам нужен класс, который реализует интерфейс IPen (назовем его Pen). Затем вы должны будете заменить IPen в строке Json на Pen, и Json.Net сможет создать экземпляр объекта.

Просто чтобы быть ясно, ваш класс Pen должен выглядеть примерно так:

public class Pen: IPen 
{ 
//Interface implementation here. 
} 
Смежные вопросы