C# Newtonsoft.Json.JsonSerializationException:无法创建类型为(抽象类)的实例
我试图测试以下示例的序列化,但最终得到以下错误C# Newtonsoft.Json.JsonSerializationException:无法创建类型为(抽象类)的实例,c#,json,nest,C#,Json,Nest,我试图测试以下示例的序列化,但最终得到以下错误Newtonsoft.Json.JsonSerializationException:无法创建Core.Model.Assets.Asset类型的实例。类型是接口或抽象类,无法实例化。路径'\u source.articleAssets[0].asset.refId'。在下面的示例中,Asset是一个抽象类,有5个以上的派生类(例如:BrightcoveVideo是派生类之一) 在ElasticSearchRegistry类中,我以以下方式添加此转换
Newtonsoft.Json.JsonSerializationException:无法创建Core.Model.Assets.Asset类型的实例。类型是接口或抽象类,无法实例化。路径'\u source.articleAssets[0].asset.refId'
。在下面的示例中,Asset
是一个抽象类,有5个以上的派生类(例如:BrightcoveVideo
是派生类之一)
在ElasticSearchRegistry类中,我以以下方式添加此转换器:
var connectionSettings = new ConnectionSettings(connectionUri);
_elasticClient = new ElasticClient(connectionSettings);
connectionSettings.SetJsonSerializerSettingsModifier(p => p.Converters.Add(new AssetTypeConverter()));
我在以下get
请求中获得JsonSerialization异常:
public IGetResponse<Article> GetArticleResponse(int id)
{
var response = _elasticClient.Get<Article>(i => i.Index(_indexName)
.Type(DocumentType)
.Id(id)
);
return response;
}
public IGetResponse GetArticleResponse(int-id)
{
var response=\u elasticClient.Get(i=>i.Index(\u indexName)
.Type(文档类型)
.Id(Id)
);
返回响应;
}
我把它修好了,这是个很小的错误。在实例化ElasticClient之前,我设置了JsonSerializerSettings
,如下所示:
connectionSettings = new ConnectionSettings(connectionUri);
connectionSettings.SetJsonSerializerSettingsModifier(
p => p.Converters.Add(new AssetTypeConverter())
);
_elasticClient = new ElasticClient(connectionSettings);
我把它修好了,这是个很小的错误。在实例化ElasticClient之前,我设置了
JsonSerializerSettings
,如下所示:
connectionSettings = new ConnectionSettings(connectionUri);
connectionSettings.SetJsonSerializerSettingsModifier(
p => p.Converters.Add(new AssetTypeConverter())
);
_elasticClient = new ElasticClient(connectionSettings);
我把它修好了,这是一个很小的错误。我在实例化
ElasticClient
之前设置了JsonSerializerSettings,如下所示:connectionSettings=new connectionSettings(connectionUri);connectionSettings.SetJsonSerializerSettingsModifier(p=>p.Converters.Add(new AssetTypeConverter())_elasticClient=新的elasticClient(连接设置)代码>您可以将其作为答案发布。我已将其修复,这是一个非常小的错误。在实例化ElasticClient
之前,我设置了JsonSerializerSettings,如下所示:connectionSettings=新的connectionSettings(connectionUri);connectionSettings.SetJsonSerializerSettingsModifier(p=>p.Converters.Add(new AssetTypeConverter())_elasticClient=新的elasticClient(连接设置)代码>您可以将其作为答案发布
connectionSettings = new ConnectionSettings(connectionUri);
connectionSettings.SetJsonSerializerSettingsModifier(
p => p.Converters.Add(new AssetTypeConverter())
);
_elasticClient = new ElasticClient(connectionSettings);