2016-12-14 5 views
0

На основании https://docs.particular.net/nservicebus/serialization/json, я хотел бы передать некоторые настройки JsonSerializer, например IgnoreNullValues. Но до сих пор я не узнал ни одного примера того, как передавать настройки в сериализатор.Как передать настройки в Nservicebus JsonSerializer в C#?

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.

Спасибо.

ответ

0

От David Boike комментария, это именно ответ на мой вопрос:

По умолчанию Json.NET усвоен в NServiceBus, что означает, что вы не можете установить любые варианты на него или на самом деле получить доступ к своему API, вообще. Вот почему существует NewtonsoftSerializer, позволяющий вам использовать внешний пакет JSON.NET, который находится в вашем проекте, с любыми настройками, которые вам нужны.

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 поэтому пробег может варьироваться.

+0

Я видел это решение, но он использует [NewtonsoftSerializer] (https://docs.particular.net/nservicebus/serialization/newtonsoft), который является отдельным пакетом. Я пытался использовать [JsonSerializer] (https://docs.particular.net/nservicebus/serialization/json), который по умолчанию поставляется с nsb. Спасибо, в любом случае. – znn

+2

@znn По умолчанию JSON.NET интегрируется в NServiceBus, что означает, что вы не можете установить какие-либо параметры на нем или вообще получить доступ к своим API. Вот почему существует NewtonsoftSerializer, позволяющий вам использовать внешний пакет JSON.NET, который находится в вашем проекте, с любыми настройками, которые вам нужны. –