Gra*_*ton 3 c# dependency-injection autofac
我继承了一个相当大的代码库,其中大量使用了 Autofac。我发现了一些有趣甚至有点令人费解的事情。
我有一堂这样的课
public class ClassA
{
public ClassA(IEnumerable<IInterface> allObjects)
{
}
}
Run Code Online (Sandbox Code Playgroud)
在我的项目中,我有一些实现的类IInterface,例如
public class AInterface:IInterface {};
public class BInterface:IInterface {};
public class CInterface:IInterface {};
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我让 Autofac 实例化ClassA,那么对于allObjects参数,Autofac 会给我List<IInterface>(){AInterface, BInterface, CInterface}
看起来 Autofac 正在遍历应用程序域中加载的程序集中的所有类型,并自动实例化从IInterface.
这是有记录的行为吗?如果是的话,在哪里?尽管这完全按照我的预期工作,但我仍然希望确保它已记录并得到正式支持,这样我就不会依赖于未记录的(因此会受到更改)行为,而这些行为只是因为偶然而表现良好。