.NET抽象基类的插件功能?

时间:2014-07-02 04:28:10

标签: c# .net oop plugins abstract-class

我是新手,所以如果这是一个简单的问题,请原谅我。我想创建一个服务,允许第三方为其创建插件dll。 dll的目的只有一个 - 通过GetData()方法返回一个类型的数据,该方法可能与每个插件有所不同。

一个插件可能想要返回一个String,另一个插件可能想要返回一个Int32,另一个插件可以返回一个Int64的数组......等等。

我正在考虑创建一个每个插件可以派生出来的抽象基类。基类上有几种方法 - Startup(),Shutdown()和GetData()。我的服务会在每个插件上定期调用GetData()。

什么是定义抽象基类的更好方法,更具体地说是GetData(),以便每个派生的插件类可以返回不同的数据类型?我应该使用泛型吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

使用IOC容器,例如 -

  1. MEF
  2. Castle.Windsor
  3. Autofac
  4. 和其他人。这些都是为了支持这种实现 -

    我通常使用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/