2014-07-02 68 views
1

我是新手,所以請原諒我,如果這是一個簡單的問題。我想創建一個允許第三方創建插件DLL的服務。該dll將有一個單一的目的 - 通過每個插件可能不同的GetData()方法返回一個類型的數據。插件功能的.NET抽象基類?

一個插件可能要返回一個字符串,另一個可能要返回一個Int32,Int64的的另一個數組....等

我想創建一個抽象基類的每個插件就推導從。基類中有幾種方法 - Startup(),Shutdown()和GetData()。我的服務會每隔一段時間在每個插件上調用GetData()。

定義抽象基類和更具體的GetData()以便每個派生的插件類可以返回不同的數據類型的最好方法是什麼?我應該使用泛型嗎?

謝謝。

+1

你可以定義一個'interface'其中有'的GetData()'方法,該方法將返回一個類型'object'或'dynamic'。然後讓你的插件實現'interface' –

+0

你將如何處理數據?你需要知道它是什麼類型? – Blorgbeard

+0

會有預定義數量的允許類型(Int32,Int64,Int32 [],Int64 [],String,String []等)。也許20左右的總可允許的返回類型。 – user3796134

回答

0

使用IoC容器如 -

  1. MEF
  2. Castle.Windsor
  3. Autofac

等。這些都是爲了支持這種實現 -

我通常使用MEF和Castle.Windsor來處理這種場景。我有一篇關於MEF的博客文章。可以幫助你

  1. http://mahmudulislam.me/2012/04/20/1a-managed-extensibility-framework-introduction/
  2. http://mahmudulislam.me/2012/04/30/1bcreating-the-solution/
  3. http://mahmudulislam.me/2012/06/20/1c-building-blocks-for-the-core-engine/
+0

這沒有幫助。我明白如何做插件。請重新閱讀這個問題。 – user3796134