我是ASP.NET MVC的新手,我需要帮助使用Ninject在单例范围内加载某些类型。
---现有代码看起来像----
List<Type> types = loading some types into list here.
foreach (var type in types.Where(O => O.Name.StartsWith("I")))
{
Kernel.Bind(type).To(Type.GetType(type.FullName.Replace(".I", ".")));
}
我的工作是在单例范围内绑定这些类型,我不知道该怎么做。
答案 0 :(得分:3)
kernel.Bind().To()
后.InSingletonScope()
答案 1 :(得分:3)
另请参阅Ninject约定扩展。它让这样的事情变得容易多了。 例如,你可以这样写它。
kernel.Bind(x =>
x.FromThisAssembly()
.SelectAllClasses()
.Where(types.Contains)
.BindDefaultInterface()
.Configure(b => b.InSingletonScope()));
根据您获取类型列表的方式,这可能更容易编写。只需查看维基上的文档和示例。
https://github.com/ninject/ninject.extensions.conventions/wiki