2017-07-15 56 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();

相關問題