我需要在我的项目中找到所有实现名为IMyInterface的接口并在Unity容器中注册的类。
任何人都知道如何做到这一点,没有统一创建在Unity注册的对象的实例?
答案 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容器以查看它是否包含它的实例。