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

How to pass settings to Nservicebus JsonSerializer in C#?

基于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 的可用设置列表。

谢谢。

根据他们的 documentation:

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

这确实使用了 NewtonsoftSerializer,而不是 JsonSerializer,因此您的情况可能会有所不同。

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

默认情况下 JSON.NET 被内化到 NServiceBus 中,这意味着您不能在其上设置任何选项 或根本无法真正访问其 API。这就是 NewtonsoftSerializer 存在的原因,它允许您使用项目中的外部 JSON.NET 程序包以及您想要的任何设置。