在bin的所有程序集中搜索接口

时间:2010-09-28 15:05:37

标签: c# .net asp.net

如何扫描bin目录中的所有程序集并检索实现接口的所有类型?

2 个答案:

答案 0 :(得分:10)

您可以使用Reflection和LINQ查询轻松找到它们

var type = typeof(IRyuDice);
var types = AppDomain.CurrentDomain.GetAssemblies().ToList()
    .SelectMany(a => a.GetTypes())
    .Where(t => type.IsAssignableFrom(t));

AppDomain.CurrentDomain.GetAssemblies会返回System.Reflection.Assembly[]个集合。然后选择该程序集中的所有类型,并检查您的接口是否被该类型使用。

http://msdn.microsoft.com/en-us/library/system.appdomain.getassemblies.aspx

答案 1 :(得分:2)

我的回答可能太明显但我会试一试......

您需要查看DirectoryInfo以获取目录的每个文件(* .dll)并使用reflection以便深入了解... {/ p>

这是回答你的问题还是你想知道实际的实施?