不同的NullValueHandling用于asp.net核心Web应用程序中的序列化和反序列化

时间:2016-08-23 12:20:08

标签: c# asp.net json.net

我尝试使用实现INotifyPropertyChanged的视图模型来实现PATCH方法。这就是为什么我希望NullValueHandling为反序列化的NullValueHandling.Include(因此显式定义的空值将触及setter并将被正确处理)。

同时,我想摆脱GET方法输出中的空值。所以我在序列化过程中需要NullValueHandling为NullValueHandling.Ignore。

有没有办法使用asp.net核心网络应用程序的标准机制来实现这样的结果?

现在我使用此代码初始化Json转换器:

public void ConfigureServices(IServiceCollection services)
{
    ...
    services.AddMvc(...)
        .AddJsonOptions(o =>
        {
            o.SerializerSettings.NullValueHandling = NullValueHandling.Include;
            ...
        });
    ...
}

并且无法找到任何方法为序列化和反序列化分别指定空值处理。这就是为什么我必须使用两个单独的模型,一个用于具有默认序列化的GET请求,一个用于具有[JsonProperty(NullValueHandling = NullValueHandling.Include)]属性和自定义get和set方法的PATCH请求。

任何想法如何只用一个模型解决问题?

感谢您的帮助!

0 个答案:

没有答案