确定包含类名中的类的程序集(不是类型的实例)

Fre*_*non 0 c#

我试图确定哪个程序集包含特定的类.我不想在该程序集中创建一个类型的实例,但是想要这样的东西

namespace SomeAssembly
{
   class SomeClass
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

..和我想要的客户端代码:

Assembly containingAssembly = GetContainingAssembly(SomeClass)
Run Code Online (Sandbox Code Playgroud)

SLa*_*aks 6

如果您有System.Type实例(例如typeof(SomeType)),则可以查看该Assembly属性.

如果您只有一个字符串,则可以循环AppDomain.CurrentDomain.GetAssemblies()调用,assembly.GetType(typeName)直到找到包含该类型的程序集.(typeName 必须包含完整的命名空间)
请注意,这将非常慢.

如果装配没有装,你可以放弃; 不可能.(除非你自己加载程序集)