我在Unity中尝试以下内容:
我有一个类型与以下构造函数
public Type1(Type2 firstDependency, Type3 secondDependency)
Run Code Online (Sandbox Code Playgroud)
Type1使用Unity 解析时,我想指定Type2要注入的特定实例.此特定实例Type2未在容器中注册.Type3已在容器中注册,应照常解决.
更具体地说,考虑Type1是一个DocumentViewer类.Type2是具体的Document.Type3是一个SpellingChecker.
我希望能够解决DocumentViewer的Document,其仅在运行时知道.可以创建多个DocumentViewer不同的实例Documents.
我怎样才能做到这一点?
这是我制作的一个简单示例,您可以使用 RegisterInstance 或者可以使用生命周期管理 Claas
static void Main(string[] args)
{
IUnityContainer container = new UnityContainer();
container.RegisterType<Type1>();
container.RegisterInstance<Type2>(new Type2());
Type1 t = container.Resolve<Type1>();
Type2 t2 = container.Resolve<Type2>();
Type3 t3 = container.Resolve<Type3>();
Console.ReadKey();
}
public class Type1
{
}
public class Type2
{
}
public class Type3
{
private Type1 t;
private Type2 t2;
public Type3(Type1 t, Type2 t2)
{
this.t = t;
this.t2 = t2;
}
}
Run Code Online (Sandbox Code Playgroud)
更新:我在构造函数中包含了一个带有两个参数的类型,以表明它也可以被解析。
| 归档时间: |
|
| 查看次数: |
10918 次 |
| 最近记录: |