C# - 从程序集中的文件夹中获取所有接口

Bra*_*don 6 .net c# reflection

我有一些WCF服务,我在某个文件夹中的程序集中有一个服务合同(接口)列表.我知道命名空间,它看起来像这样:

MyProject.Lib.ServiceContracts
Run Code Online (Sandbox Code Playgroud)

我希望有一种方法可以获取该文件夹中的所有文件,这样我就可以迭代每个文件并从每个方法中获取属性.

以上可能吗?如果是的话,有关如何做到这一点的任何建议?

谢谢你的帮助.

Ali*_*tad 16

这应该得到你所有这样的接口:

    string directory = "/";
    foreach (string file in Directory.GetFiles(directory,"*.dll"))
    {
        Assembly assembly = Assembly.LoadFile(file);
        foreach (Type ti in assembly.GetTypes().Where(x=>x.IsInterface))
        {
            if(ti.GetCustomAttributes(true).OfType<ServiceContractAttribute>().Any())
            {
                // ....

            }
        } 
    }
Run Code Online (Sandbox Code Playgroud)