У меня есть эта иерархия классов:
public class ProxyBotsSnapshotLogEntryDetails : IBotsSnapshotLogEntryDetails
{
public ICollection<IBotSnapshot> Snapshots { get; set; }
}
public class ProxyBotSnapshot : IBotSnapshot
{
public string Name { get; set; }
public ICollection<IBotSnapshotItem> States { get; set; }
}
public class ProxyBotSnapshotItem : IBotSnapshotItem
{
public int Count { get; set; }
public IrcBotChannelStateEnum State { get; set; }
}
и соответствующие им интерфейсы
public interface IBotsSnapshotLogEntryDetails
{
ICollection<IBotSnapshot> Snapshots { get; set; }
}
public interface IBotSnapshot
{
string Name { get; set; }
ICollection<IBotSnapshotItem> States { get; set; }
}
public interface IBotSnapshotItem
{
int Count { get; set; }
IrcBotChannelStateEnum State { get; set; }
}
, которые я хотел бы десериализовать из JSON:
var test = JsonConvert.DeserializeObject<ProxyBotsSnapshotLogEntryDetails>(entry.DetailsSerialized);
, ноЯ получаю сообщение об ошибке, в котором говорится, что Newtonsoft не может конвертировать интерфейсы.
Я нашел эту многообещающую статью:
https://www.c -sharpcorner.com / UploadFile / 20c06b / deserializing-interface-properties-with-json-net /
, но я не уверен, как использовать этот атрибут, поскольку в моем случае это список интерфейсов.