Ninject 在 Xamarin 中可移植导致 NotImplementedException
Ninject Portable in Xamarin results in NotImplementedException
当我在 Xamarin.Forms 应用程序中使用 Portable.Ninject 时,实例化 StandardKernel 总是导致 NotImplementedException
.
我可以按如下方式始终如一地重现问题:
- 创建 Xamarin.Forms 应用程序(在 VS2017 中:跨平台应用程序 (Xamarin))
- 将其配置为使用 PCL
- 我只对 Android 感兴趣,为了简洁起见,我删除了所有其他平台项目。
- 将 NuGet 包 Portable.Ninject 添加到 PCL 和 Android 平台
然后,在 App.xaml.cs 中,我只需尝试以下操作:
public App()
{
InitializeComponent();
//ommitting NinjectModules for brevity
var kernel = new Ninject.StandardKernel(); //exception is thrown here
MainPage = new NavigationPage(new MainView());
}
我在这里错过了什么?
目前我正在使用 Portable.Ninject 版本 3.3.1。
我还尝试了 XLabs.IoC.Ninject 包(它也使用 Portable.Ninject)并得到了相同的结果。
遇到同样问题的朋友:
tldr; 清理 你的项目,然后重建。
说明:起初我只将Ninject添加到我的PCL,而忘记将其添加到Android项目中。虽然后来我在Android项目中添加了Ninject库,但还是会抛出异常。
解决方案是清理项目并重建它们。有时就是这么简单!
当我在 Xamarin.Forms 应用程序中使用 Portable.Ninject 时,实例化 StandardKernel 总是导致 NotImplementedException
.
我可以按如下方式始终如一地重现问题:
- 创建 Xamarin.Forms 应用程序(在 VS2017 中:跨平台应用程序 (Xamarin))
- 将其配置为使用 PCL
- 我只对 Android 感兴趣,为了简洁起见,我删除了所有其他平台项目。
- 将 NuGet 包 Portable.Ninject 添加到 PCL 和 Android 平台
然后,在 App.xaml.cs 中,我只需尝试以下操作:
public App()
{
InitializeComponent();
//ommitting NinjectModules for brevity
var kernel = new Ninject.StandardKernel(); //exception is thrown here
MainPage = new NavigationPage(new MainView());
}
我在这里错过了什么?
目前我正在使用 Portable.Ninject 版本 3.3.1。 我还尝试了 XLabs.IoC.Ninject 包(它也使用 Portable.Ninject)并得到了相同的结果。
遇到同样问题的朋友:
tldr; 清理 你的项目,然后重建。
说明:起初我只将Ninject添加到我的PCL,而忘记将其添加到Android项目中。虽然后来我在Android项目中添加了Ninject库,但还是会抛出异常。
解决方案是清理项目并重建它们。有时就是这么简单!