如何获得C#.Net大会的名字?

有没有像这样的东西:

AppDomain.CurrentDomain.GetAssemblyByName("TheAssemblyName") 

所以不是循环通过AppDomain.CurrentDomain.GetAssemblies() ,我们可以直接得到特定的程序集。

你有没有试过看Assembly.Load(…) ?

PS雪人从天而降…未assembly。 (是的,丹麦的第一天下雪):D

我解决了与LINQ

 Assembly GetAssemblyByName(string name) { return AppDomain.CurrentDomain.GetAssemblies(). SingleOrDefault(assembly => assembly.GetName().Name == name); } 

这取决于你想要完成什么。

如果你只想得到程序集,那么你应该调用System.Reflection.Assembly.Load() (正如已经指出的那样)。 这是因为.NET会自动检查程序集是否已经加载到当前的AppDomain中,如果已经加载过了,它将不会再次加载它。

如果你只是想检查程序集是否被加载(可能是出于某些诊断的原因),那么你必须遍历所有加载的程序集。

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

看看System.Reflection.Assembly类,特别是Load方法: MSDN

对于那些只需要访问程序集的元数据(版本等)的人可以查看Assembly.ReflectionOnlyLoad(name),它只能加载元数据,可能会保存在内存和IO上。