我有一个接受Post的webapi(例如)
public Foo Post(MyInfo info)
{
return new Foo();
}
MyInfo可能是这样的
public class MyInfo
{
[JsonProperty(PropertyName = "n")]
public int MyInt1{ get; set; }
[JsonProperty(PropertyName = "v")]
public string MyString1{ get; set; }
}
当我的桌面应用程序(版本1)向此webapi发布请求时,一切正常。我用JsonConverter序列化对象。
现在让我们说,我想在MyInfo中添加一个新参数,如下所示
public class MyInfo
{
[JsonProperty(PropertyName = "n")]
public int MyInt1{ get; set; }
[JsonProperty(PropertyName = "v")]
public string MyString1{ get; set; }
[JsonProperty(PropertyName = "s")]
public MyEnum EnumValue{ get; set; }
}
我更新了网站和webapi,并发布了我的桌面应用程序的新版本(版本2)。
webapi适用于我桌面应用程序的第2版。但是,当我使用我的版本1时,webapi中的参数(MyInfo info)结束为null。 提醒一下,版本1发送完全相同的MyInfo对象,但缺少一个属性。
如果缺少该属性,我该如何避免此问题并定义默认值。
由于
答案 0 :(得分:0)
实际上问题是我有两个具有相同Json属性名称的属性。
它完全与默认值无关。