我有以下情況的程序集的引用:如何獲取到該實例化的類
Assembly A
- 類庫,包含了我的控制Control A
。Control A
有財產ResourceName
。
Assembly B
- Winforms應用程序,包含品牌資源(圖像,字符串等)。Assembly B
參考Assembly A
並使用它的自定義控件。Solution
- 包含程序集A
和B
的項目文件。
Control A
定位使用GetEntryAssembly(),以獲得組裝件的參考,它在運行時的工作資源ResourceName
,但在設計時我想進入組裝devenv.exe的或相似的,所以這是行不通的東西。
理想情況下,我應該能夠加載創建(實例化)控件的程序集。
我甚至可以引入一個新的Control A
屬性AssemblyName
,但我需要完整的路徑才能加載它,而且我無法在設計時從代碼中獲取組件B的路徑。
編輯:感謝理查德我現在在控件的構造函數中使用Assembly.GetCallingAssemby(),並在私有字段中進行緩存,這比GetEntryAssembly更普遍。它仍然不能在設計時工作(I作爲調用程序集獲得System.dll
)。我懷疑這是因爲VS設計者沒有實例化整個類,而只是.designer.cs部分。