我们有一个场景,需要获取架构元数据以对对象进行序列化(反序列化)。模式存储库仅提供异步调用。如何编写异步的JsonConverter?如果不可能,人们正在使用哪些替代方法来处理ASP.NET管道中的异步序列化?
我不需要异步加载或保存json。这是在解析和创建json期间异步获取元数据。这样,解串器可以确定解析数据时要加载的具体和动态类型和版本。
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
var metadata = await metadataRepo.GetMetadata(value);
/* inject custom json formatting from object */
}
public override override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
var jobject = JObject.Load(reader);
var schema = jobject["schema"];
var metadata = await metadataRepo.GetMetadata(schema);
/* parse complex json formatting from object */
}