【问题标题】:Search for interface in all assemblies of bin在bin的所有程序集中搜索interface
【发布时间】:2010-09-28 23:12:27
【问题描述】:

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

【问题讨论】:

  • 这些答案中的任何一个都能回答您的问题吗?

标签: c# .net asp.net


【解决方案1】:

您可以使用反射和 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

【讨论】:

  • 我认为这不能回答问题,因为它只会处理在 CurrentDomain 中加载的程序集,而不是在 bin 目录中存在但尚未使用的程序集。这里有一个答案可能会有所帮助:stackoverflow.com/questions/1288288/…
【解决方案2】:

我的答案可能太明显了,但我会试一试......

您需要查看DirectoryInfo 以获取目录的每个文件(*.dll)并使用reflection 来挖掘它们...

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 2021-04-25
    • 2023-04-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多