如何配置 Json 序列化程序以在 Web api 中为输入和输出参数设置单独的日期转换器?
How to configure Json Serializer to have separate date converters for input and output parameters in web api?
我在 Web api 上工作,我需要制作 Json 序列化程序以仅将日期输入参数转换为 UTC 格式。
现在我正在使用此代码进行转换:
IsoDateTimeConverter converter = new IsoDateTimeConverter
{
DateTimeStyles = DateTimeStyles.AdjustToUniversal,
};
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(converter);
以上配置将在输入和输出日期参数上实现。
如何配置我的网站 api 有两个日期转换器,一个用于输入参数,另一个用于输出参数?
PS:
我想将日期输入参数转换为 utc,但要将输出参数转换为 ISO 8601
我想到的最简单的解决方案是创建继承自 IsoDateTimeConverter
并覆盖 CanWrite
属性 的自定义 DateTime 转换器,以便它始终 returns false
。在这种情况下,转换器将仅用于反序列化输入,从不用于序列化输出:
public class InputUniversalConverter : IsoDateTimeConverter
{
public override bool CanWrite => false;
public InputUniversalConverter()
{
DateTimeStyles = DateTimeStyles.AdjustToUniversal;
}
}
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new InputUniversalConverter());
我在 Web api 上工作,我需要制作 Json 序列化程序以仅将日期输入参数转换为 UTC 格式。
现在我正在使用此代码进行转换:
IsoDateTimeConverter converter = new IsoDateTimeConverter
{
DateTimeStyles = DateTimeStyles.AdjustToUniversal,
};
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(converter);
以上配置将在输入和输出日期参数上实现。
如何配置我的网站 api 有两个日期转换器,一个用于输入参数,另一个用于输出参数?
PS:
我想将日期输入参数转换为 utc,但要将输出参数转换为 ISO 8601
我想到的最简单的解决方案是创建继承自 IsoDateTimeConverter
并覆盖 CanWrite
属性 的自定义 DateTime 转换器,以便它始终 returns false
。在这种情况下,转换器将仅用于反序列化输入,从不用于序列化输出:
public class InputUniversalConverter : IsoDateTimeConverter
{
public override bool CanWrite => false;
public InputUniversalConverter()
{
DateTimeStyles = DateTimeStyles.AdjustToUniversal;
}
}
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new InputUniversalConverter());