LoadApplication上的TypeLoadException(new App())

时间:2017-08-05 09:31:38

标签: ios xamarin xamarin.forms typeloadexception

我有一个跨平台的Xamarin Forms项目,当在Android或Windows Mobile上运行时正常

现在我需要在iOS上运行它,但是当在iPhone模拟器上启动应用程序时出现异常:

" System.TypeLoadException:无法加载类型' XamarinMO.Services.DataServices'来自汇编' XamarinMO,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'。"

异常发生在代码的早期,在 LoadApplication(new App())上的iOS AppDelegate中;

public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{

    public override bool FinishedLaunching(UIApplication app, NSDictionary options)
    {
        global::Xamarin.Forms.Forms.Init();

        LoadApplication(new App()); -- <<*** EXCEPTION THROWN HERE ***

        ServicePointManager
        .ServerCertificateValidationCallback +=
        (sender, cert, chain, sslPolicyErrors) => true;

        return base.FinishedLaunching(app, options);
    }

我无法使用调试器进入代码,堆栈跟踪与巧克力水壶一样有用。

异常似乎与我的DataServices类中的代码无关,因为执行甚至没有进展到那么远。我的DataServices类似乎甚至没有实例化 - 当我在DataServices构造函数的第一行放置一个断点时,执行甚至没有实现。这表明问题与类本身内部的代码无关(适用于各种Android和Windows Mobile设备)

1 个答案:

答案 0 :(得分:0)

我找到了原因。

我不得不将PCL中的System.Net.Http与Microsoft.Net.Http交换。显然标准.NET System.Net.Http适用于Android或WinPhone但不适用于iOS。

现在项目在所有平台上运行良好。