ninject - 从 Ninject 2 移动到 Ninject 3。绑定(bind)错误。确保提供者正确处理创建请求

标签 ninject

我刚刚使用 Ninject 3 更新了我的应用程序。将 App_Start 中的文件从 NinjectMVC3 更改为 NinijectWebCommon.cs。移动了我的文件,更新了 DLLs..
现在我开始收到此错误:

“使用 Dictionary{string, string} 的条件隐式自绑定(bind)激活 Dictionary{string, string} 时出错
提供者返回 null。
激活路径:
4) 将依赖 Dictionary{string, string} 注入(inject) MapWidgetViewModel 类型的构造函数的参数 widgetSettings
3) 将依赖IDetailedSearchResultCollectionWidget注入(inject)MediaSourcesViewModel类型构造函数的参数mediaWidgets
2) 将依赖 ITabItem 注入(inject)到 TabNavigationController 类型的构造函数的参数 tabItems 中
1) 请求 TabNavigationController

建议:
1) 确保提供者正确处理创建请求。”

在这里生成它的代码:

public MediaSourcesViewModel(IEnumerable<IMediaSourcesDataProvider> dataProviders,
               IEnumerable<IDetailedSearchResultCollectionWidget> mediaWidgets,
               IMediaItemDetailsWidget itemDetailsWidget)
        {
        this.Description = "Source list";
            this.ActionName = "DisplaySourcesAsPartial";
            this.ControllerName = "MediaSources";
            this.DefaultType = "MediaManagement";

            _dataProviders = dataProviders;

            MediaWidgets = new List<IDetailedSearchResultCollectionWidget>();
            MediaWidgets.AddRange(mediaWidgets);         //Set Tab Info
            this.Name = "Sources";
        }

MapWidgetViewModel 类定义如下:
public class MapWidgetViewModel : IDetailedSearchResultCollectionWidget, IMapWidgetSettings
{
   //constructor:
   public MapWidgetViewModel(IEnumerable<IDetailedSearchResult> dataSet, 
          Dictionary<String,String> widgetSettings = null)
        {
            InitParentInterfaceProperties();
        }
}

最后绑定(bind):
kernel.Bind<IDetailedSearchResultCollectionWidget>().To<MapWidgetViewModel>(); 

没有
kernel.Bind<MapWidgetViewModel>().ToSelf();

感谢您提供如何解决此问题的任何想法。

多谢!

亚历克斯

最佳答案

好的..找到有帮助的答案..这里是:
Using default parameter values with Ninject 3.0

只需要覆盖设置:
kernel.Settings.AllowNullInjection = true;

谢谢,

关于ninject - 从 Ninject 2 移动到 Ninject 3。绑定(bind)错误。确保提供者正确处理创建请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11421700/

相关文章:

asp.net - Ninject owin 依赖项到 IIS Web 主机中以实现 ASP.net Identity

c# - 如何 Moq NHibernate 扩展方法?

c# - Ninject 的 UnitOfWork 模式应该使用什么选项

Ninject - 如何从注入(inject)的子对象引用父对象

c# - C#-使用依赖项注入(inject)(ninject)代替工厂模式

c# - 通用接口(interface)依赖注入(inject)到工厂

c# - 使用名称来区分使用 IoC 的实例

entity-framework - Ninject WebAPI 操作无法完成,因为 DbContext 已被释放

asp.net-mvc - 如何将对象传递给我的 VIewModel 的构造函数? ASP.NET MVC 3,忍者

asp.net-mvc - 我真的使用 ninject 和 NHibernate 为模型中的每个类添加这一行吗?