使用特定实例的依赖注入 - MS Unity

时间:2013-04-21 08:58:53

标签: mvvm prism unity-container

我正在编写基于PRISM的MVVM应用程序。 我在那些日子里学习PRISM,我有一个关于UnityContainer的技术问题。

使用container.Resolve时,有没有办法注入特定实例?

我将尝试通过例子来解释。

让我们注册下一个类型:

var container = new UnityContainer();
container
    .RegisterType(typeof(ISomeClass), typeof(SomeClass))

// with string
container
    .RegisterType(typeof(IExample), typeof(Example), "SpecificExampleInstance") 
// without string
container
    .RegisterType(typeof(IExample), typeof(Example)); 

SomeClass的构造函数获取IExample作为输入参数。

现在我想要SomeClass的解析实例,但告诉“容器”向SomeClass构造函数注入IExample的实例 - “SpecificExampleInstance”(在第3行注册的那个)上面的代码)而不是IExample - 没有字符串(在上面代码的第4行注册的那个 - 没有字符串)

我很清楚我的问题很清楚,如果没有,请告诉我,我会尝试改变这个提法。

由于

1 个答案:

答案 0 :(得分:0)

一种选择是使用Dependency属性:

public class SomeClass
{
   public SomeClass([Dependency("SpecificExampleInstance")] IExample myExample)
   { 
      // work with the service here
   }
}