2017-07-15 55 views
3

我正在使用GetTypeInfo()方法从程序集中获取类的TypeInfo获取已加载程序集的根名称空间(程序集名称空间)

通过我试图获得该程序集的根名称空间(或称为程序集名称空间?)。但是我找不到那个给我那个名字空间的属性。有AssemblyQualifiedName这是一个string它有根名称空间。但也有很多其他的东西,如版本号等

我如何获得在.NET核心程序集的根名称空间?

+0

为什么不能使用AssemblyQualifiedName? – Crowcoder

+0

@Crowcoder在那里有太多的信息,如文化信息,程序集版本,publicKey等。我会创建一个正则表达式来解决它。我确信那里有一个物业可以获得实际的名字。我似乎无法找到它。 – Vivendi

+0

看起来像'TypeInfo'具有'Namespace'属性。 – Crowcoder

回答

3

大会没有命名空间本身仅装配中的类型。您可能会想到的是“程序集名称”,它通常与程序集中大多数类型使用的“默认名称空间”名称相同。

Assembly assembly = //.. 
string name = assembly.GetName().Name; 

GetName()返回一个AssemblyName对象,其中包含了用于以建立AssemblyQualifiedName件。此功能可在.Net Standard 1.0中获得,所以可在all versions of .NET Core

0

由于装配可以有多个命名空间,你只能设法让所有类型的命名空间:

.GetTypeInfo().Assembly.GetTypes().Select(t => t.Namespace).Distinct();

相关问题