0

我正在编写基于 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)); 

SomeClassget的构造函数IExample作为输入参数。

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

我希望我的问题足够清楚,如果没有,请告诉我,我会尝试改变公式。

谢谢

4

1 回答 1

0

一种选择是使用Dependency属性:

public class SomeClass
{
   public SomeClass([Dependency("SpecificExampleInstance")] IExample myExample)
   { 
      // work with the service here
   }
} 
于 2013-04-21T09:14:30.547 回答