在Xamarin.Mac项目中使用Portable.Ninject时出现NullReferenceException
我无法在Xamarin.Mac项目中使用Portable.Ninject 我正在创建这样一个容器:在Xamarin.Mac项目中使用Portable.Ninject时出现NullReferenceException,xamarin,ninject,inversion-of-control,xamarin.mac,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());
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);
}
}
核心模块是:
public class CoreModule: NinjectModule
{
public override void Load()
{
Bind<ISettings>().To<EyeLeoSettings>().InSingletonScope ();
}
}
公共类核心模块:NinjectModule
{
公共覆盖无效负载()
{
Bind().To().InSingletonScope();
}
}
当我试图在AppController构造函数中将其用作服务定位器时:
private ISettings _settings;
public AppController()
{
_settings = MainClass.Container.Get<ISettings> ();
}
私人ISettings\u设置;
公共应用程序控制器()
{
_settings=MainClass.Container.Get();
}
我得到NullReferenceException。以下是堆栈跟踪中的几行:
System.NullReferenceException:对象引用未设置为实例
一个物体在
Ninject.Infrastructure.Language.ExtensionsForMemberInfo.get\u ParentDefinitionMethodInfo
()在
Ninject.Infrastructure.Language.ExtensionsFormMemberInfo.GetParentDefinition
(System.Reflection.MethodInfo、System.Reflection.BindingFlags)
请告诉我是否可以在Xamarin.Mac应用程序中使用Portable.Ninject。谢谢。我在Ubuntu 14.04.1(Mono JIT编译器3.2.8)上的Mono 3.2.8下遇到了同样的堆栈跟踪问题,有什么想法吗?它不起作用。我用过TinyIOC,从那以后我一直在快乐地使用它。对于我的Xamarin项目,Ninject没有什么是ti不能提供的。