Dynamics crm 2011 为什么插件实现IPlugin接口和工作流(自定义)继承代码活动基类

Dynamics crm 2011 为什么插件实现IPlugin接口和工作流(自定义)继承代码活动基类,dynamics-crm-2011,dynamics-crm,dynamics-crm-2013,dynamics-crm-2015,Dynamics Crm 2011,Dynamics Crm,Dynamics Crm 2013,Dynamics Crm 2015,基本上我在一次采访中被问到这个问题,我的部分回答是 您可以通过派生CodeActivity抽象类并在其中添加组织(业务)特定组件(例如日志记录和异常处理机制)来创建自己的自定义工作流活动基础类 现在,您创建的任何自定义工作流活动都将派生新创建的自定义工作流活动base类,并且所有的基类功能都将可用 但是对于接口也是如此,因此为什么IPlugin是一个接口而不是一个抽象类,例如PluginBase。因为Dynamics CRM工作流依赖于,插件不依赖 关于IPlugin接口问题,实际上,如果您使用

基本上我在一次采访中被问到这个问题,我的部分回答是

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

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


但是对于接口也是如此,因此为什么IPlugin是一个接口而不是一个抽象类,例如PluginBase。

因为Dynamics CRM工作流依赖于,插件不依赖


关于IPlugin接口问题,实际上,如果您使用开发者工具包,它会为您将使用该工具包创建的所有插件创建一个类(可以说是模板)

因为Dynamics CRM工作流依赖于,所以插件不依赖


关于IPlugin接口问题,实际上,如果您使用开发者工具包,它会为您将使用该工具包创建的所有插件创建一个类(可以说是模板)

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

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

这个问题是为了回答这个问题吗?您应该将您的问题编辑为问题,然后添加您自己的答案。此问题是否打算作为答案?您应该将问题编辑为问题,然后添加自己的答案。