解决Unity中的一系列依赖关系

时间:2018-09-07 10:09:57

标签: c# dependency-injection inversion-of-control unity-container

我有以下代码,在其中注册了一系列类型(也在RegisterInstance中进行了尝试):

container.RegisterType<IMyService, MyService>("Type1", new InjectionConstructor(1, "test");
container.RegisterType<IMyService, MyService>("Type2", new InjectionConstructor(2, "hello world");

然后我将其注入到这样的类中:

public class MyClass : IMyClass
{
    private readonly IMyService[] _services;

    public MyClass(
        IMyService[] services)
    {
        _services = services;
    }

到目前为止,太好了。但是,在稍后的阶段,我希望能够通过其名称检索该类。例如:

_services["Type2"].DoStuff();

由于_services是一个数组,因此我需要通过它的索引来引用它。 IMyService内部没有可让我使用Linq拉正确的属性的属性。我确实接受过将类包装在另一个具有此类属性的类中的想法,但这似乎没有必要。

Unity可以直接提供这种方式吗?还是有一种我没有考虑过的好方法呢?

0 个答案:

没有答案