我是 IoC 和依赖注入的初学者。我正在阅读它,但我无法理解。当我弄清楚东西是如何工作的时,我正在尝试在我的项目中实现其中的一些模式(并且可能通过反复试验来学习)。
我正在使用FluentSecurity包(来自 NuGet,顺便说一句)实现安全控制。我需要实现一个策略违规处理程序,如本 wiki中所述。问题是该示例是为 StructureMap IoC 容器编写的,而我正在使用(或尝试)Ninject 2.2(对于初学者来说似乎更简单)。
在他们的代码中,他们建议(a):
configuration.ResolveServicesUsing(type => ObjectFactory.GetAllInstances(type).Cast<object>());
然后(b):
public class WebRegistry : Registry
{
public WebRegistry()
{
Scan(scan =>
{
scan.TheCallingAssembly();
scan.AddAllTypesOf<IPolicyViolationHandler>();
});
}
}
我的担忧:
- 我知道代码 (a) 将包含在
Global.asax
. 但是 Ninject 的替代方案是ObjectFactory.GetAllInstances()
什么? - 我不知道应该在哪里插入这段代码,也不知道
WebRegistry
,Scan
和内部函数TheCallingAssembly
和AddAllTypesOf
.
我知道这是一个有点广泛的问题,但我很感激任何帮助!提前致谢。