簡體   English   中英

管理通過使用'Designer'屬性而產生的松散耦合的程序集引用

[英]Managing loosely coupled assembly references incurred through usage of the 'Designer' attribute

我們構建了許多組件,WinForms,Workflow活動等,並且我們經常使用的是“ Designer”屬性。 在初始開發過程中,通常的做法是,將Designer屬性與[Designer(typeof(DesignerType))]樣式配合使用以使工作正常-然后,將其轉換為[Designer("AssemblyQualifiedTypeName")] ,以允許設計者從組件的引用列表中刪除DLL-這消除了組件使用者必須將設計器DLL與其產品一起部署的需要。 將設計時代碼和運行時代碼分為兩個單獨的DLL的這種做法是很常見的做法,我支持這種做法。

不利的一面是,“程序集限定類型名稱”將包括設計器dll的程序集版本,因此,當版本增加時,必須在整個產品上執行“搜索並替換”,以確保它們更新了所有“松散引用此設計師。

最后,我的問題是:任何人都可以推薦一種不依賴於“搜索和替換”的最佳做法,這種最佳做法可以管理所有這些引用,以確保它們始終是最新的? 我們經常會導致一個懶惰的開發人員忘記更新參考字符串,從而導致該組件的新版本鏈接到設計器DLL的先前版本-當然不會部署該組件,因此會失去設計時支持。 我可能不知道某種形式的編譯指示,宏,構建腳本,魔術屬性,但是必須有一種更好的方法。

任何人? (謝謝)

為什么不創建一個內部使用Managed Addin Framework或Activator.CreateInstance之類的單一設計器來挑選和顯示設計器呢? 有了這種技術,Designer屬性將永遠不必更改...

像微軟一樣做。 看一下Reflector中的AssemblyRef類(System.Windows.Forms.dll)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM