2009-04-20 16 views
1

我正在開發一個程序,我希望能夠使用DI,C#添加功能,因此我將創建一個示例以查看這是否可能。使用DI添加用於使用2個數字計算的新方程

我有一個程序,用戶輸入任何兩個數字。 程序然後查看xml文件中的所有插件,並使用這些注入的類來計算這兩個數字。

所以,我創建了兩個類,Add和Subtract。我把它們放入並運行我的程序。

理想情況下,我想讓程序找到這兩個類並在通過方程式後顯示結果。

現在,別人寫入「Multiply」,將其放入一個目錄,更新xml文件,然後下次運行我的程序時,有兩個數字,結果有三個。

現在,我不知道會有多少插件。

在C#中有沒有什麼方法可以使用DI來獲得這種類型的功能?

我不知道這是否可能。

我想弄明白這一點,因爲我想展示一種方式來繪製一些數據,使用不同類型的圖形,但我認爲使用二進制方程式的方法使解釋更簡單。

我可以通過手動加載xml文件中引用的類來完成此任務,因此可以完成此操作,但是,我希望有一個依賴關係框架負責爲我處理繁重的工作。

更新:我希望能爲此使用Unity框架。

回答

2

可以暴露的接口(IMathOperation例如,用一個單獨的方法如Compute),然後指定實現在DI框架配置文件中的接口(AddSubtract等)類型。 DI框架通常允許您指定程序集名稱以及類型名稱,並且它們通常也擅長於創建類似類型的集合,因此您可以擁有一個類型爲IList<IMathOperation>的屬性或構造函數參數。在配置文件中設置該屬性/參數,你應該很好去。

當然,確切的細節將取決於您想要使用的DI框架。