关于LoadApplication(new App())的TypeLoadException

问题描述:

我有一个跨平台的Xamarin Forms项目,其中正常工作在Android或Windows Mobile上运行时。关于LoadApplication(new App())的TypeLoadException

现在我需要iOS上运行,但我得到一个异常当应用程序在iPhone模拟器启动:

“System.TypeLoadException:未能从程序集加载类型‘XamarinMO.Services.DataServices’' XamarinMO,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'。“

异常代码发生早,在iOS版的AppDelegate上LoadApplication(新的App());:

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); 
    } 

我无法使用调试器来单步执行代码和堆栈痕迹与巧克力水壶一样有用。

显得异常不作为执行甚至不进步,远远要进行相关的代码我DataService的类中。我的DataService的类似乎并不甚至被实例化 - 当我把一个破发点上DataService的构造函数的第一行,执行甚至没有到达那里。这表明问题与班级本身内部的代码无关(可在各种Android和Windows Mobile设备上正常工作)

+0

是您的链接行为设置为链接呢? – Milen

+0

>>“您的链接器行为设置为链接全部” 是的。 –

+0

尝试将它设置为唯一的联系SDK组件,看看这是否会有所作为。 – Milen

我找到了原因。

我只好换了System.Net.Http与Microsoft.Net.Http的PCL。显然,标准的.NET System.Net.Http可以在Android或WinPhone下正常工作,但不适用于iOS。

现在项目运行在所有平台上的罚款。