Xamarin IOS棱镜中的解析失败异常

时间:2019-04-05 20:52:03

标签: xamarin xamarin.forms unity-container prism

我有一个用Xamarin编写的iOS应用程序,尝试在iOS中运行该应用程序时遇到了Unity Exceptions Resolution Failed异常。但是,当我运行应用程序的android版本时,不会发生此错误。发生棱镜异常时,引发异常。

这是我的app.xaml.cs中的摘录

protected override void RegisterTypes(IContainerRegistry containerRegistry)
    {
        this.RegisterLocal(containerRegistry);
        this.RegisterServices(containerRegistry);  
        this.RegisterPagesForNavigation(containerRegistry);
    }

此代码全部执行并通过。

这是iOS初始化

Register("AppDelegate")]
public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
    public override bool FinishedLaunching(UIApplication app, NSDictionary options)
    {

        global::Xamarin.Forms.Forms.Init();

        PullToRefreshLayoutRenderer.Init();

        LoadApplication(new App(new IosInitializer()));

        return base.FinishedLaunching(app, options);
    }

    public class IosInitializer : IPlatformInitializer
    {
        public void RegisterTypes(IContainerRegistry containerRegistry)
        {
            containerRegistry.Register<IUAirshipUpdate, UAirshipUpdate>();
        }
    }

此代码也将执行

抛出的异常是参数null异常,指示不存在IModuleCatelog。我不明白为什么它要寻找那个模块而找不到它。 GitHub上的源代码指示该类已注册。

1 个答案:

答案 0 :(得分:1)

此问题是由于将IOS应用程序的链接器行为设置为完全,并且导致Unity IOC Container出现问题而引起的。