首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何按名称获取C#.Net程序集?

如何按名称获取C#.Net程序集?
EN

Stack Overflow用户
提问于 2009-12-16 16:03:57
回答 6查看 97.5K关注 0票数 101

有没有类似这样的东西:

代码语言:javascript
复制
AppDomain.CurrentDomain.GetAssemblyByName("TheAssemblyName")

因此,我们可以直接获取特定的程序集,而不是遍历AppDomain.CurrentDomain.GetAssemblies()

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-12-16 16:09:34

您有没有尝试过查看Assembly.Load(...)

票数 115
EN

Stack Overflow用户

发布于 2014-06-17 17:05:01

我用LINQ解决了

代码语言:javascript
复制
Assembly GetAssemblyByName(string name)
{
    return AppDomain.CurrentDomain.GetAssemblies().
           SingleOrDefault(assembly => assembly.GetName().Name == name);
}
票数 81
EN

Stack Overflow用户

发布于 2009-12-16 16:26:45

这取决于你想要实现的目标。

如果你只是想得到程序集,那么你应该调用System.Reflection.Assembly.Load() (如前所述)。这是因为.NET会自动检查程序集是否已经加载到当前AppDomain中,如果已经加载,则不会再次加载。

如果您只是试图检查程序集是否已加载(可能是出于某种诊断原因),那么您必须遍历所有已加载的程序集。

您可能想要循环的另一个原因是,如果您只知道一些程序集信息(例如,您不确定版本)。也就是说,您知道的足够“当您看到它时识别它”,但还不足以加载它。然而,这是一个相当模糊和不太可能的情况。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1913057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档