使用Unity Container在运行时注册类型

时间:2017-08-04 17:38:16

标签: c# types unity-container ioc-container

为什么我不这样做?其中obj值是有效类型。

Type type = obj.Value.GetType();
this.unityContainer.RegisterType<type>();

OR

this.unityContainer.RegisterType(obj.Value);

当我能做到这一点时... obj值将是相同类型但在编译时已知。

this.unityContainer.RegisterType<object, actualType>("Name");

我的最终目标是能够在运行时注册几种不同的类型。

1 个答案:

答案 0 :(得分:0)

在编译时必须知道尖括号中的任何内容 - 泛型是编译时功能。 RegisterType有很多重载,它们采用运行时确定的Type对象,例如你在这里做的。

将运行时类型引用移出尖括号并进入括号。

this.unityContainer.RegisterType(obj.Value.GetType());