Json.net与DefaultValues和构造函数的混合

时间:2018-08-30 15:07:02

标签: asp.net-web-api json.net

我正在将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
}

这是我的json的webapi设置。

 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;
}

0 个答案:

没有答案