如何在C#中将设置传递给Nservicebus JsonSerializer?

时间:2016-12-14 16:37:11

标签: c# nservicebus jsonserializer

基于https://docs.particular.net/nservicebus/serialization/json,我想将一些设置传递给JsonSerializer,例如IgnoreNullValues。 但到目前为止,我没有找到任何如何将设置传递给序列化器的示例。

var serialization = endpointConfiguration.UseSerialization<JsonSerializer>();

//I would like to use something like below, 
//but I don't find any examples of how to pass settings to the JsonSerializer
serialization.Settings.IgnoreNUllValues = true;

我无法找到的是传递设置的正确语法或默认JsonSerializer的可用设置列表。

感谢。

2 个答案:

答案 0 :(得分:1)

根据他们的documentation

var settings = new JsonSerializerSettings
{
    TypeNameHandling = TypeNameHandling.Auto,
    Converters =
    {
        new IsoDateTimeConverter
        {
            DateTimeStyles = DateTimeStyles.RoundtripKind
        }
    }
};
var serialization = endpointConfiguration.UseSerialization<NewtonsoftSerializer>();
serialization.Settings(settings);

这确实使用了NewtonsoftSerializer而不是JsonSerializer,所以你的里程可能会有所不同。

答案 1 :(得分:0)

来自David Boike的评论,这正是我的问题的答案:

默认情况下,JSON.NET内部化为NServiceBus,这意味着无法在其上设置任何选项或者根本无法访问其API。这就是NewtonsoftSerializer存在的原因,允许您使用您喜欢的任何设置在项目中使用外部JSON.NET包。