我有一个带有接口(interface)列表属性的对象。我需要序列化和反序列化这个对象。我正在使用 newton json 进行序列化,它将对象转换为 json,但是当我反序列化此 json 以反对其 crate 错误 'Could not create an instance' 时。我的课是这样的
public class GridFilterModel
{
public IList<IFilter> Filter { get; set; }
}
最佳答案
那是因为它不知道使用哪种类型来反序列化 IFilter
into (JsonSerializer 默认为 List<>
选择 IList<>
) - 您需要在声明中使用此类型,例如假设 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; }
关于c# - 如何使用 Property List<IOBJ> 对对象进行 json 序列化或 json 反序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15966476/