在MonoDroid上使用System.Net的MvvmCross出错

时间:2013-07-29 12:33:04

标签: xamarin.android xamarin mvvmcross system.net

我在可移植类库中通过System.Net引用了HttpStatusCode。

然后我需要从包含该PCL的MonoDroid项目中引用该状态代码。我知道System.Net命名空间存在于MonoDroid的系统DLL中,并且已包含在内。

然而,这会导致构建错误:

 CS0012: The type 'System.Net.HttpStatusCode' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Net, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes'.

现在我意识到引用PCL System.Net存在强大的命名空间问题,并且MvvmCross.PortableSupport中存在一个应该解决此问题的Shim DLL。我已将MvvmCross.PortableSupport.3.0.8.1 \ lib \ MonoAndroid16 \ System.Net.dll包含在MonoDroid项目中,但我仍然遇到同样的错误。

我错过了什么?

谢谢!

马修

1 个答案:

答案 0 :(得分:0)

所以我无法确定底层问题,但解决方法是避免通过可移植类库(框架104顺便说一句)从本机代码引用System.Net符号

在这个例子中,我没有从PCL中暴露HttpStatusCode,而是将它暴露为整数,从而解决了这个问题。

斯图尔特目前正在度假,但他建议将此作为一种解决方法,并且工作正常。目前尚不清楚为什么MvvmCross包含的Shim System.Net.Dll没有将引用正确地重定向到本机库。

相关问题