2009-09-15 83 views
1

我是從我的應用程序的所有加載的程序集使用得到Product屬性:獲得一個組裝的產品屬性只具有的AssemblyName

AssemblyProductAttribute product 
    = (AssemblyProductAttribute)Attribute.GetCustomAttribute(
     assembly, typeof(AssemblyProductAttribute)); 

我想獲得這個屬性對所有的組件是當前加載組件參考。但是GetReferencedAssemblies()返回一個AssemblyName s的數組,所以我不能使用上面的代碼來獲取Product屬性。

是否有一種方式來獲得從AssemblyName對象,或一種方式來獲得從AssemblyNameProduct屬性的Assembly對象?

回答

1

那麼你可以使用Assembly.Load(AssemblyName)加載程序集 - 這對你來說足夠好嗎?請注意,一旦您加載了程序集,除卸載AppDomain之外,您將無法卸載。當然,如果無論如何都要裝載這些程序集,那沒有什麼壞處。 (一旦你將程序集加載到AppDomain中,再次使用相同的AssemblyName將僅返回已加載的程序集。)

+0

我相信這應該起作用 - 我不確定加載已經裝載的程序的效果如何,加載組件會。 – 2009-09-15 17:48:28

+0

就我所知,應該沒有問題 - 它應該返回已經加載的程序集。當我有機會時會檢查。 – 2009-09-15 17:58:26

+0

該解決方案並不完美,因爲它證明我的一些程序集引用了其他程序集,這些程序集未包含在我的軟件中,因此觸發了FileNotFoundException。 – 2009-09-15 18:04:20

相關問題