Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# System.TypeLoadException:解码自定义属性时无法加载类型System.Net.HttpStatusCode,netstandard:(null)_C#_Xamarin.ios_.net Standard_Custom Attributes_System.net - Fatal编程技术网

C# System.TypeLoadException:解码自定义属性时无法加载类型System.Net.HttpStatusCode,netstandard:(null)

C# System.TypeLoadException:解码自定义属性时无法加载类型System.Net.HttpStatusCode,netstandard:(null),c#,xamarin.ios,.net-standard,custom-attributes,system.net,C#,Xamarin.ios,.net Standard,Custom Attributes,System.net,该问题发生在Xamarin.IOS类型的项目和.NetStandard2.0库之间。我已经创建了一个小的解决方案()来演示这个问题。为了实现这一点,Xamarin项目使用Newtonsoft nuget 情况: 在.NetStandard项目中,我有一个包含单个属性(在我的例子中是HttpStatusCode类型的属性)的单个对象,该属性具有定义该属性默认值的自定义属性 公共类TestObject { [默认值(HttpStatusCode.OK)] 公共HttpStatusCode代码{get

该问题发生在Xamarin.IOS类型的项目和.NetStandard2.0库之间。我已经创建了一个小的解决方案()来演示这个问题。为了实现这一点,Xamarin项目使用Newtonsoft nuget

情况: 在.NetStandard项目中,我有一个包含单个属性(在我的例子中是HttpStatusCode类型的属性)的单个对象,该属性具有定义该属性默认值的自定义属性

公共类TestObject
{
[默认值(HttpStatusCode.OK)]
公共HttpStatusCode代码{get;set;}
}
在Xamarin项目中,我创建了一个测试,该测试实例化了在.NetStandard项目中创建的类型的对象,并尝试将其序列化

[测试]
公开无效测试()
{
TestObject obj=新的TestObject(代码:HttpStatusCode.Accepted);
序列化对象(obj);
}
运行测试时,返回的错误如下:
System.TypeLoadException:解码自定义属性时无法加载type System.Net.HttpStatusCode,netstandard,Version=2.0.0,Culture=neutral,PublicKeyToken=CC7B13FFCD2DD51:(null)

在我的情况下,csproj中定义的架构必须是*ARMv7+ARM64*类型,以便与我们必须支持的旧iPad兼容。 我提到这一点是因为我知道选择链接器行为链接所有支持的架构ARM64可以让测试顺利通过

编辑

回答问题为什么需要使用两个项目: 事实上,本文提供的解决方案只是一个更大项目的一小部分。 在这个项目中,我们提供了应用程序的Windows版本(.NetCore 3.1)和IOS版本(Xamarin.IOS)。 为了在这两个不同的项目之间共享我们的模型,我们希望使用.NetStandard类型的库,而不是将该库分离为Windows和IOS项目。 如果其他体系结构解决方案能够解决我们的问题,我们愿意接受,但目前我们只有这些

如果您对问题及其背景有任何进一步的问题,请毫不犹豫地提问


提前感谢您的帮助

您好,您能解释一下为什么需要创建两个解决方案来实现此属性吗。“对不起,我太了解你想做什么了。”JuniorJiang MSFT在编辑后回答