Json.net со смесью значений по умолчанию и конструкторов - PullRequest
0 голосов
/ 30 августа 2018

Я использую webapi / Json.net со смесью DefaultValues ​​и конструкторов, что мне нужно, потому что DefaultValue не работает для массивов.

Я обнаружил, что мой конструктор игнорируется. Если я устанавливаю точку останова в своем классе, она останавливается в конструкторе, но когда он прибывает в контроллер, массив становится пустым.

Можно ли смешать два способа инициализации свойств с Json.net

public class MyClass
{
   [DefaultValue("U")]
   public string P1 { get; set; }
   public string[] P2 { get; set; } 

   public MyClass()
   {
      P2 = new string[] { @"X" };
   }
}

[HttpPost]
public void FundInfo(MyClass my1)
{
    // my1.P2 is am empty array
}

Вот мои настройки webapi для json.

 public static void Register(HttpConfiguration config)
{
    config.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
    config.Formatters.JsonFormatter.SerializerSettings.DefaultValueHandling = DefaultValueHandling.Populate;
    config.Formatters.JsonFormatter.SerializerSettings.ConstructorHandling = ConstructorHandling.Default;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...