Как создать экземпляр объекта? - PullRequest
4 голосов
/ 21 декабря 2010

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

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

Спасибо!

Ответы [ 3 ]

1 голос
/ 21 декабря 2010

Согласно документации, вам нужно написать логику, чтобы сообщить Json.Net, как создать объект - http://james.newtonking.com/projects/json/help/CustomCreationConverter.html

0 голосов
/ 21 декабря 2010

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

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

public class Pen: IPen
{
//Interface implementation here.
}
0 голосов
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...