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