c# - 获取应用程序内实现接口(interface)的所有对象

标签 c# .net reflection appdomain

我需要获取应用程序中实现给定接口(interface)的所有对象。 我怎样才能实现这个目标?

谢谢

澄清一下,我正在寻找不是类型的实例。


为了再次澄清,我想我需要做一些邪恶的事情,比如获取与我的 AppDomain 关联的所有线程并遍历它们的堆栈。

再次-我老板的想法...我想到使用 IOC 或 AOP...

最佳答案

这将搜索所有加载的程序集。

AppDomain myDomain = AppDomain.CurrentDomain;
Assembly[] loadedAssemblies = MyDomain.GetAssemblies();
foreach(Assembly assembly in loadedAssemblies)
{
    Type[] types = assembly.GetTypes();
    foreach (Type type in types)
    {
        if (type.GetInterface(interface name) != null)
            Console.WriteLine(type.Name);
    }
}

关于c# - 获取应用程序内实现接口(interface)的所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4183673/

相关文章:

c# - 如何使用 VS Code 调试多项目?

c# - 如何修复带边框的 ToolStripStatusLabel 中的背景颜色渗色

c# - 如何将 MVC 操作参数重新映射到另一个参数名称?

c# - 仅在 VB 中的 .NET 集合

java - 在 Java 8 中设置环境变量

C# 声明同一个表的多个实例

c# - WebDriverBackedSelenium 可以在 C# 中使用吗

c# - 如何在angularjs中使用ng-repeat渲染mathml?

c# - 创建类型的实例,作为方法的参数提供

c# - 使用反射从元数据类中获取属性属性