【发布时间】:2022-01-08 20:20:55
【问题描述】:
我有一个复杂的文档,它在各种不同的子键中都有一个自定义日期字段,即:
var doc = new Document
{
MyCustomDateTime StartTime
Matches = new []
{
MyCustomDateTime StartTime
MyCustomDateTime EndTime
}
}
不使用属性属性,因为这种类型是从 dll 中提取的,我可以覆盖MyCustomDateTime 类型的序列化和反序列化的最简单方法是什么。
我正在寻找类似的东西,或者扩展默认的序列化器类来处理一种额外的类型:
settings.DefaultSerializerFor<MyCustomDateTime>(d => MyConverter.ToString(d), d => MyConverter.FromString(d));
或类似:
public class MyCustomSerializer : DefaultElasticSearchSerializer
{
public string OnSerialize(object member)
{
if (member is MyCustomDateTime) { return MyConverter.ToString(d); }
return base.OnSerialize(member);
}
...
}
现在,它似乎只发布对象的公共属性。不幸的是,对于这个特定的类,这不是我正在寻找的行为。
【问题讨论】:
标签: c# elasticsearch serialization nest