如何在实现某个接口的外部引用中找到class?

How to Find a class in external reference that implements certain interface?

我正在处理一个添加了外部参考的项目。我用对象资源管理器搜索了这个参考。我找到了一个带有我想使用的功能的接口。现在要实现一个接口,你需要一个 class ,它具有接口的所有功能。

我的问题是:是否可以在外部引用中找到可能已经实现此接口的 class?换句话说:有没有一种好方法可以查看外部引用背后的代码?

我想使用这个可能的 class 而不是制作一个新的。感谢阅读!

你可以用反射来做到这一点:

interface MyInterface { }

public static void Main()
{
    Assembly asm = Assembly.Load("externalAssembly");

    var interfaces = asm.GetTypes().Where(t => t.IsSubclassOf(typeof(MyInterface)));

    foreach (var i in interfaces)
    {
        Console.WriteLine(String.Format("Found: {0}", i.Name));
    }
}