我想指向一個DLL的目錄並讀取其中的類的屬性。大多數類都有一個自定義屬性,包含我想要讀取的各種屬性。Assembly.GetCustomAttributes仍然被認爲是最好的方法?
我有一個使用Assembly.GetCustomAttributes
難道這仍然被認爲是最好的辦法了一些舊的代碼?
我想指向一個DLL的目錄並讀取其中的類的屬性。大多數類都有一個自定義屬性,包含我想要讀取的各種屬性。Assembly.GetCustomAttributes仍然被認爲是最好的方法?
我有一個使用Assembly.GetCustomAttributes
難道這仍然被認爲是最好的辦法了一些舊的代碼?
Assembly.GetCustomAttributes
獲取組件的元數據 - 這是組件的元數據。這通常放在AssemblyInfo.cs
,而它們可以放在任何地方。
它不應該與class
自定義屬性 - 或財產/方法/領域/等混淆。
如果你的意思是你想通過一個自定義屬性標識出這樣的感興趣的程序集來過濾掉程序集來尋找,那麼這是一個有效的方法。但是,請記住,要讀取這些屬性,首先需要將程序集加載到內存中。
反射是讀取自定義屬性的唯一方法。一些僞自定義屬性反映在System.Type類的屬性上。 「正常」加載的程序集不能從appdomain卸載,所以理想情況下,您希望將程序集加載到僅反射上下文(有方法System.Reflection.Assembly.ReflectionOnlyLoad和ReflectionOnlyLoadFrom),以便可以在需要時卸載它們信息。