Ninject StandardKernel System.ArgumentNullException: 值不能为空。参数名称:path1
Ninject StandardKernel System.ArgumentNullException: value cannot be null. Parameter name: path1
我正在学习 Xamarin
,我想将 Ninject
用于 IoC
容器和依赖项注入。我在 Visual studio 2017
社区上使用 NuGet
包添加了 Ninject 3.3.4
。我在 App.Xaml.cs:
中的以下代码行收到错误
Kernel = new StandardKernel(new TripLogCoreModule(), new TripLogNavModule(mainPage.Navigation));
我收到以下错误:
Ninject StandardKernel System.ArgumentNullException: value cannot be
null. Parameter name: path1
我在互联网上花了大约 2 个小时,但找不到解决我的问题的方法。
最后,我发现了我的疏忽,所以我想 post 这个问题并回答我自己的问题,以防其他人(像我这样的新手)犯这个错误。
我的疏忽是我安装了错误的包。我应该安装 Portable.Ninject
。
为了解决这个问题,我从所有项目中卸载了 Ninject3.3.4
,然后通过 NuGet 包安装了 Portable.Ninject 3.3.1
(撰写本文时的最新稳定版本)。
我希望这对那些可能会犯类似错误的人有所帮助并节省时间!
就我个人而言,Ninject 和 Ninject.PCL 包
都存在错误
尝试使用 NinjectSettings 构建 StandardKernel :
var settings = new Ninject.NinjectSettings() { LoadExtensions = false };
Kernel = new StandardKernel(settings, new ViewModelsModule());
此致
Emmanuel DURIN 给出了将 Ninject 3.3.4 与 Xamarin.Forms .Net Standard 结合使用的正确答案。
var settings = new Ninject.NinjectSettings() { LoadExtensions = false };
Kernel = new StandardKernel(settings, new ViewModelsModule());
而不是
Kernel = new StandardKernel(new ViewModelsModule());
我正在学习 Xamarin
,我想将 Ninject
用于 IoC
容器和依赖项注入。我在 Visual studio 2017
社区上使用 NuGet
包添加了 Ninject 3.3.4
。我在 App.Xaml.cs:
Kernel = new StandardKernel(new TripLogCoreModule(), new TripLogNavModule(mainPage.Navigation));
我收到以下错误:
Ninject StandardKernel System.ArgumentNullException: value cannot be null. Parameter name: path1
我在互联网上花了大约 2 个小时,但找不到解决我的问题的方法。
最后,我发现了我的疏忽,所以我想 post 这个问题并回答我自己的问题,以防其他人(像我这样的新手)犯这个错误。
我的疏忽是我安装了错误的包。我应该安装 Portable.Ninject
。
为了解决这个问题,我从所有项目中卸载了 Ninject3.3.4
,然后通过 NuGet 包安装了 Portable.Ninject 3.3.1
(撰写本文时的最新稳定版本)。
我希望这对那些可能会犯类似错误的人有所帮助并节省时间!
就我个人而言,Ninject 和 Ninject.PCL 包
都存在错误尝试使用 NinjectSettings 构建 StandardKernel :
var settings = new Ninject.NinjectSettings() { LoadExtensions = false };
Kernel = new StandardKernel(settings, new ViewModelsModule());
此致
Emmanuel DURIN 给出了将 Ninject 3.3.4 与 Xamarin.Forms .Net Standard 结合使用的正确答案。
var settings = new Ninject.NinjectSettings() { LoadExtensions = false }; Kernel = new StandardKernel(settings, new ViewModelsModule());
而不是
Kernel = new StandardKernel(new ViewModelsModule());