JsonConvert.Deserialize错误“没有默认构造函数”,但是有一个

时间:2019-03-01 15:27:52

标签: c# xamarin.forms json.net

我正在尝试反序列化某些Json,但出现此错误:

Unable to find a constructor to use for type MyNamespace.MyClass. 
A class should either have a default constructor, one constructor 
with arguments or a constructor marked with the JsonConstructor
attribute. Path 'timestamp', line 1, position 13.

这是我的课堂定义。显然,它具有默认构造函数。 此代码在我对其进行测试的控制台应用程序中工作正常,但在Xamarin.Forms应用程序中失败。

public class MyClass
{
    public string timestamp { get; set; }
    public List<MyOtherClass> Things { get; set; } 

    [JsonConstructor]
    public MyClass()
    {
        Things = new List<MyOtherClass>();
    }
}

public class MyOtherClass
{
    public string Name { get; set; }
    public string Status { get; set; }

    [JsonIgnore]
    public string RenderString { get { return Name + " : " + Status; } }

    [JsonConstructor]
    public MyOtherClass()
    {

    }
}

我想念什么?

1 个答案:

答案 0 :(得分:0)

听起来如此疯狂和无关,答案涉及一个链接器开关。关于类构造函数的解释方式,这意味着必须将Xamarin'.Android'项目项目的“ Android选项”选项卡上的“链接”选项设置为“仅SDK汇编”。

enter image description here