gpt4 book ai didi

c# - 忽略Elasticsearch Nest中的TypeConverter属性

转载 作者:行者123 更新时间:2023-12-02 23:03:14 24 4
gpt4 key购买 nike

我引用了在外部库中定义的几个类,这些类包含TypeConverter属性。由于此属性,Json.Net以及因此的Nest会错误地序列化这些对象。序列化这些对象的正确方法是忽略TypeConverter属性,并使用对象属性。在搜索Stack Overflow中,我发现了一种成功完成this的方法。

不幸的是,当我通过以下方式将此方法应用于Nest时,结果对象不包含必需的_type,_index和_id字段。

var settings = new ConnectionSettings(_Uri);
// Tell Json.Net to ignore custom TypeConverters
settings.SetJsonSerializerSettingsModifier(m => m.ContractResolver = new SerializableContractResolver());
var client = new ElasticClient(settings);

由于结果JSON不包含关键字段,因此所有索引请求都会失败。有没有办法让Nest忽略TypeConverter属性,同时仍然确保对象包含Elasticsearch请求的必要附加字段?

最佳答案

我认为,当您传递忽略TypeConverters的contractresolver时,您正在应用火箭筒杀死苍蝇。

我们还严重依赖于类型转换器来正确地将写入对象。

如果您的外部库中的类不能完全代表它们在Elasticsearch索引中的显示方式,建议您为NEST创建一个特定的POCOAutoMapper是将外部库的实例转换为可索引对象的实例的好方法。

关于c# - 忽略Elasticsearch Nest中的TypeConverter属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28228984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com