我正在使用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