在Xamarin.Mac项目中使用Portable.Ninject时出现NullReferenceException

时间:2014-10-03 15:20:33

标签: xamarin ninject inversion-of-control xamarin.mac

我无法在Xamarin.Mac项目中使用Portable.Ninject。

我正在创建一个这样的容器:

public class MainClass
{
    public static StandardKernel Container { get; set; }

    static void Main(string[] args)
    {
        var kernel = new StandardKernel(new CoreModule());           

        Container = kernel;

        NSApplication.Init();
        NSApplication.Main(args);
    }
}

CoreModule是这样的:

public class CoreModule: NinjectModule
{
    public override void Load()
    {
        Bind<ISettings>().To<EyeLeoSettings>().InSingletonScope ();
    }
}

当我尝试在AppController构造函数中将其用作服务定位器时:

private ISettings _settings;

public AppController()
{
    _settings = MainClass.Container.Get<ISettings> ();
}

我得到NullReferenceException。以下是堆栈跟踪中的几行:

  

System.NullReferenceException:未将对象引用设置为实例   在...的对象   Ninject.Infrastructure.Language.ExtensionsForMemberInfo.get_ParentDefinitionMethodInfo   ()at   Ninject.Infrastructure.Language.ExtensionsForMemberInfo.GetParentDefinition   (System.Reflection.MethodInfo,System.Reflection.BindingFlags)...

如果在Xamarin.Mac应用程序中使用Portable.Ninject,请告诉我。谢谢。

0 个答案:

没有答案