gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 18:17:16 27 4
gpt4 key购买 nike

我刚刚使用 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com