查询Unity的所有接口实例

时间:2012-01-22 13:13:43

标签: c# asp.net .net inversion-of-control unity-container

我需要在我的项目中找到所有实现名为IMyInterface的接口并在Unity容器中注册的类。

任何人都知道如何做到这一点,没有统一创建在Unity注册的对象的实例?

2 个答案:

答案 0 :(得分:5)

您可以使用类似

的查询在容器实例中查询注册
var x = container.Registrations.Where(cm => cm.RegisteredType == typeof(IMyInterface));

答案 1 :(得分:0)

您可以先查询所有非抽象类型并实现您的界面:

this.GetType().Assembly.GetTypes().Where(type => type.IsClass &&
                                              !type.IsAbstract &&
                                              type.IsAssignableFrom(IMyInterface));

然后,对于每种类型,查询Unity容器以查看它是否包含它的实例。