c# - 是否可以复制 JsonObjectAttribute 的行为?
问题描述
我正在尝试从另一个实现 IEnumerable 的包中序列化/反序列化一个类,但还包含我希望包含在序列化流中的其他属性。
public class MyList<T> : IList<T>
{
private List<T> _list;
public Foo Bar { get; set; }
// IList implementation ...
}
如果我将[JsonObject]
属性应用于类,并使用自定义ContractResolver
序列化私有字段,一切正常。正如我之前所说,该类属于另一个包,因此我无法将该属性应用于该类。
我注意到文档中的以下代码。
public class ConverterContractResolver : DefaultContractResolver
{
public new static readonly ConverterContractResolver Instance = new ConverterContractResolver();
protected override JsonContract CreateContract(Type objectType)
{
JsonContract contract = base.CreateContract(objectType);
// this will only be called once and then cached
if (objectType == typeof(DateTime) || objectType == typeof(DateTimeOffset))
{
contract.Converter = new JavaScriptDateTimeConverter();
}
return contract;
}
}
由于我已经在使用自定义ContractResolver
来序列化/反序列化私有字段,我是否可以简单地重新编写if
子句以使用与Converter
应用时相同的子句JsonObjectAttribute
?
解决方案
推荐阅读
- linux - 循环 json 文件/数组 linux bash
- html - nodejs读取html文件中的配置文件
- jquery - 带有附加字段的jQuery表单提交不起作用
- docker - Docker Jupyter Token Authenticaion:无效的凭证
- reactjs - 在 React 中:找不到模块:无法解析“react-lodable”?
- java - 如何从字符串中找到具有多个点的数字序列,如 1.2.3.4?
- android - 为什么 RecyclerView 项目在键盘出现时损坏?
- java - 忽略 xmlunit 中的空标签
- codeigniter-3 - 我无法在 codeigniter 中加载视图文件
- android - 按 F9 键切换视频