为什么插件实现IPlugin接口和工作流(自定义)继承了Code Activity基类

时间:2016-05-01 13:44:26

标签: dynamics-crm-2011 dynamics-crm dynamics-crm-2013 dynamics-crm-2015

基本上我在接受采访时被问过这个问题,我部分回答说,

您可以通过派生 CodeActivity 抽象类并在其中添加您的组织(业务)特定组件来创建自己的自定义工作流活动 base 类,例如记录和异常处理机制。

现在,您创建的任何自定义工作流活动都将派生新创建的自定义工作流活动 base 类,并且所有基类功能都可用。

但接口的情​​况也是如此,因此IPlugin是一个接口,而不是一个抽象类,例如 PluginBase

2 个答案:

答案 0 :(得分:2)

因为Dynamics CRM工作流依赖于Windows Workflow Foundation,插件不会。

关于你的IPlugin接口问题,实际上如果你使用Developer Toolkit,它会为你将使用工具包创建的所有插件创建一个类(我们可以说是模板)。

答案 1 :(得分:1)

由于CodeActivity具有35个方法,因此使其成为抽象类似乎是合乎逻辑的,以便开发人员可以灵活地在继承CodeActivity的类中根据其选择/要求实现方法/方法。 如果CodeActivity是接口,则必须在类实现接口中实现所有35种方法,这是不合逻辑的。 这就是为什么Microsoft将CodeActivity作为抽象类,而将Iplugin作为接口。