查询Unity中实现某个接口的所有实例

4
我需要在我的项目中找到所有实现了名为IMyInterface的接口并已注册到Unity容器中的类。
有没有一种方法可以做到这一点,而不必让Unity创建已注册到Unity的对象的实例?
2个回答

6
您可以使用以下查询语句来查询容器实例中的注册信息:

您可以使用类似这样的查询进行容器实例的注册

var x = container.Registrations.Where(cm => cm.RegisteredType == typeof(IMyInterface));

@user457485 如果我的答案解决了您的问题,如果您能将其标记为答案,那就太好了。 - Sebastian Weber

0

你可以先查询所有不是抽象的类型并实现你的接口:

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

然后对于这些类型中的每一个,查询您的Unity容器以查看它是否包含其实例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接