我正在使用GetTypeInfo()
方法从程序集中获取类的TypeInfo
。获取已加载程序集的根名称空间(程序集名称空间)
通过我试图获得该程序集的根名称空间(或称为程序集名称空间?)。但是我找不到那个给我那个名字空间的属性。有AssemblyQualifiedName
这是一个string
它有根名称空间。但也有很多其他的东西,如版本号等
我如何获得在.NET核心程序集的根名称空间?
我正在使用GetTypeInfo()
方法从程序集中获取类的TypeInfo
。获取已加载程序集的根名称空间(程序集名称空间)
通过我试图获得该程序集的根名称空间(或称为程序集名称空间?)。但是我找不到那个给我那个名字空间的属性。有AssemblyQualifiedName
这是一个string
它有根名称空间。但也有很多其他的东西,如版本号等
我如何获得在.NET核心程序集的根名称空间?
大会没有命名空间本身仅装配中的类型。您可能会想到的是“程序集名称”,它通常与程序集中大多数类型使用的“默认名称空间”名称相同。
Assembly assembly = //..
string name = assembly.GetName().Name;
的GetName()
返回一个AssemblyName
对象,其中包含了用于以建立AssemblyQualifiedName
件。此功能可在.Net Standard 1.0中获得,所以可在all versions of .NET Core
由于装配可以有多个命名空间,你只能设法让所有类型的命名空间:
.GetTypeInfo().Assembly.GetTypes().Select(t => t.Namespace).Distinct();
为什么不能使用AssemblyQualifiedName? – Crowcoder
@Crowcoder在那里有太多的信息,如文化信息,程序集版本,publicKey等。我会创建一个正则表达式来解决它。我确信那里有一个物业可以获得实际的名字。我似乎无法找到它。 – Vivendi
看起来像'TypeInfo'具有'Namespace'属性。 – Crowcoder