[英]How to setup nodatime json serializer in asp.net core 3.1
[英]Different Impl of Serializer in ASP.NET Core
我正在使用 ASP.NET 内核,并且我有一个ISerializer
接口,它应该提供不同的序列化器实现,有时使用 Newtonsoft,有时使用System.Test.Json
。
public interface IJsonSerializer
{
string Serialize<TInput>(TInput input);
TOutput Deserialize<TOutput>(string input);
};
问题与设置有关,主题之一是使用JsonSerializerOptions
,另一个主题是使用JsonSerializerSettings
。
如何实现基于两种不同类型的接口?
这些实现在我稍后在 API 中使用的不同项目中。
我尝试使用泛型,但它不起作用。
我认为创建包含这两种设置的设置类型不是一个好主意。
你的建议是什么?
考虑一下这样的事情:
public interface IJsonSettings
{
}
public interface IJsonSerializer<JsonSettings> where JsonSettings : IJsonSettings
{
void ApplySettings(JsonSettings settings);
string Serialize<TInput>(TInput input);
TOutput Deserialize<TOutput>(string input);
}
public class NewtonSettings : IJsonSettings
{
public JsonSerializerOptions Options;
}
// and then implement something like
public class NewtonSerializer : IJsonSerializer<NewtonSettings>
{
private Newtonsoft.Json.JsonSerializer serializer;
public void ApplySettings(NewtonSettings settings)
{
throw new System.NotImplementedException();
}
public TOutput Deserialize<TOutput>(string input)
{
throw new System.NotImplementedException();
}
public string Serialize<TInput>(TInput input)
{
throw new System.NotImplementedException();
}
}
空接口背后的原因是允许限制用于 IJsonSerializer 接口的泛型。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.