【发布时间】:2017-07-18 14:32:13
【问题描述】:
是否可以仅使用 IoC 容器来解决这个小程序中显示的依赖关系?如何?如何在容器内注册类,让每个实例A形成自己的解析范围?
是否可以使用单个 Resolve-call 来重现程序?
class A
{
}
class B
{
private readonly A a;
public B(A a)
{
this.a = a;
}
}
class C
{
private readonly B b;
public C(B b)
{
this.b = b;
}
public void PrintHello()
{
Console.WriteLine("Hello StackOverflow!");
}
}
class Program
{
static void Main(string[] args)
{
for (var i = 0; i < 10; ++i)
{
var a = new A();
var b = new B(a);
var c = new C(b);
c.PrintHello();
}
}
}
【问题讨论】:
-
如果您要求特定代码来注册您的服务,您需要告诉我们您使用的是哪个服务容器,语法不同。
-
是的,可以使用 IoC 容器。您更喜欢使用哪个容器?
-
就您的问题而言,大多数服务容器都支持这一点,只需注册所有服务,容器将负责其余的工作。通常你也不需要做任何具体的事情,只需确保所有服务都已注册。
-
如果问题是“我应该使用哪个框架”,那么这个问题与 Stackoverflow 无关。
标签: c# dependency-injection inversion-of-control ioc-container