C# 查询接口的所有实例的统一性

C# 查询接口的所有实例的统一性,c#,asp.net,.net,inversion-of-control,unity-container,C#,Asp.net,.net,Inversion Of Control,Unity Container,我需要在我的项目中找出所有实现接口IMyInterface的类,这些类都是在Unity容器中注册的 有谁知道这样做的方法,而不让unity创建向unity注册的对象的实例?您可以首先查询所有非抽象类型并实现您的接口: this.GetType().Assembly.GetTypes().Where(type => type.IsClass && !type.IsAbstract &a

我需要在我的项目中找出所有实现接口IMyInterface的类,这些类都是在Unity容器中注册的


有谁知道这样做的方法,而不让unity创建向unity注册的对象的实例?

您可以首先查询所有非抽象类型并实现您的接口:

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

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

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

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

@用户457485如果我的答案解决了你的问题,如果你能把它标记为答案就好了。