2010-11-30 73 views
0

我有一個Winform Gui服務於各種目的。我正在創建一個額外的插件,如果存在的話,將另一個tabpage添加到我的tabcontrol中,然後添加所需的控件等。c#通過插件DLL在winform中添加控件

我的問題是,我最好將其編碼爲主應用程序,即'if dll present create這個觀點'或者我應該將其編碼到dll並使用反射?是否有可能使用反射?

感謝/

回答

3

你也許應該考慮,它正是你要找的現有框架。對於爲例,託管擴展框架MEF

MEF提出了 運行時的可擴展性問題的簡單解決方案。直到 現在,任何想要 支持插件模型的應用程序需要 從 劃傷創建自己的基礎結構。這些插件通常是 應用程序特定的,並且不能在多個 實現中重複使用 。 MEF爲主機應用程序 提供了一種 標準方式來公開自己並使用外部 擴展名。擴展的性質,可以在 不同的應用程序中重複使用。但是, 擴展仍然可以以特定於應用程序的方式實現 。 擴展本身可以依靠 彼此和MEF將確保 他們連接在一起在正確的 命令(另一件事你不會 擔心)。 MEF爲您的 應用程序提供了一套 發現方法來定位和加載 可用的擴展。

或者,如果你需要在單獨的應用程序域,您可以使用託管加載項框架MAF

但在你的情況,我認爲MEF應該做的伎倆。 雖然如果你只有這一個場景,可能會過度殺傷......但它是一個選項。

+0

Excellent..cheers。 – 2010-11-30 13:27:46