【发布时间】:2017-11-07 17:29:45
【问题描述】:
我有一个使用依赖注入但当前不使用任何 IoC 容器的应用程序。我目前在我的应用设置代码中有如下内容:
ISimpleDependency ez = new SimpleDependency();
ISomeOtherDependency otherDep = new SomeOtherDependency();
FooConfig fooConfigA = Settings.Default.FooConfigA;
FooConfig fooConfigB = Settings.Default.FooConfigB;
IFoo fooA = new Foo(fooConfigA, ez);
IFoo fooB = new Foo(fooConfigB, ez);
Bar bar = new Bar(fooA, otherDep);
Baz baz = new Baz(fooB, ez, otherDep);
Qux qux = new Qux(fooA, fooB); //params IFoo[] constructor to which we want to pass every Foo
为了降低我的应用设置代码的复杂性并提高可维护性,我想引入一个 IoC 容器。有什么方法可以在这里使用 IoC 容器来自动连接所有内容,而无需将 Foo/Bar/Baz/Qux 类与 IoC 容器实现的选择紧密耦合?
【问题讨论】:
-
我相信Unity IoC 容器将与您的示例代码兼容,但我无法想象一个可以简化的 IoC 容器> 它。
-
这并不是说如果您有其他依赖项的具体需求比您在问题中包含的类型更少,它不会简化您的整个项目。
标签: c# .net dependency-injection inversion-of-control ioc-container