2

我无法在 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 () 在 Ninject.Infrastructure.Language.ExtensionsForMemberInfo.GetParentDefinition (System.Reflection.MethodInfo,System.Reflection.BindingFlags ) ...

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

4

0 回答 0