2014-07-02 30 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