【发布时间】:2017-09-10 12:05:32
【问题描述】:
当我在 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)并得到了相同的结果。
【问题讨论】:
-
这里有一个关于这个项目的样本:github.com/RobGibbens/Xamarin.IoC/tree/master/NinjectDemo
-
感谢您的链接。那里非常有用的存储库。我检查了样本,除了我的应用程序中发生的事情之外,它没有做任何其他事情。它运行完美,而我的项目却没有。我检查了 csproj 文件中的差异,并没有发现什么特别之处。最后,我对我的项目进行了 CLEAN,构建它,瞧!魔法。不知何故,一个错误的 Ninject 版本一定已经潜入了我的 bin 文件夹。
标签: c# xamarin xamarin.forms ninject