gpt4 book ai didi

c# - 带有 .NET 标准库的 Xamarin.Android 上的 JsonSerializationException 'Unable to find a constructor'

转载 作者:行者123 更新时间:2023-11-30 21:32:00 24 4
gpt4 key购买 nike

我已将 Xamarin Native UI 用于 Android 应用程序,并为 API 调用和数据创建了不同的类库使用 Newtonsoft.Json 反序列化 api 数据。

该类库 Target Framework 是 .NET Standar 2.0

因为我添加了对控制台应用程序的引用,所以它工作正常,但我在 Android 项目中添加了相同的引用,它的抛出错误。

**错误详情**Newtonsoft.Json.JsonSerializationException:无法找到用于类型的构造函数。一个类应该有一个默认构造函数、一个带参数的构造函数或一个标有 JsonConstructor 属性的构造函数。

根据错误消息,我已将属性 JsonConstructor 用于类的默认构造函数。

例子:

public class TestClass
{
[JsonConstructor]
public TestClass()
{

}
}

最佳答案

As PreserveAttribute required Mono.Android.dll Or 'Xamarin.iOS.dll' reference in that but my class library is Common for both thats why it is not possible

PreserveAttribute 类添加到您的类库并使用该属性,因为 Mono 链接器仅使用属性的“名称”,而不使用 namespace /类名...

public sealed class PreserveAttribute : Attribute
{
public bool AllMembers;
public bool Conditional;
public PreserveAttribute (bool allMembers, bool conditional)
{
AllMembers = allMembers;
Conditional = conditional;
}
public PreserveAttribute ()
{
}
}

然后在您的 JSON 模型/类上使用该属性:

[Preserve(AllMembers = true)]
public class TestClass
{
~~~

关于c# - 带有 .NET 标准库的 Xamarin.Android 上的 JsonSerializationException 'Unable to find a constructor',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52639795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com