我有一个带接口列表属性的Object。我需要序列化和反序列化此对象。我正在使用newton json进行序列化,它将对象转换为json,但是当我取消这个json以反对它的crate错误'无法创建实例'时。我的班级就像这样
public class GridFilterModel
{
public IList<IFilter> Filter { get; set; }
}
答案 0 :(得分:2)
这是因为它不知道使用哪种类型将IFilter
反序列化(默认情况下JsonSerializer为List<>
选择IList<>
) - 你需要在声明,例如asssuming Filter : IFilter
:
public IList<Filter> Filter { get; set; }
将序列化和反序列化。
更新以下评论
如果您不控制过滤器的类型,那么我建议您创建一个DTO,其中包含您关注的所有相关数据,然后将其序列化:
public class FilterData
{
public FilterData(IFilter filter)
{
// Copy data from filter argument here into local properties.
}
}
...
public IList<FilterData> FilterData { get; set; }