Ninject单例范围加载

时间:2013-04-22 10:22:59

标签: ninject ninject.web.mvc

我是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", ".")));
}

我的工作是在单例范围内绑定这些类型,我不知道该怎么做。

2 个答案:

答案 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