我无法在 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,请告诉我。谢谢你。