博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

                                                                          图 1 

如图1,CRM编程是一个请求响应模型,任何操作都是通过一个Request发起,一个Response返回结果,这个模型简单实用。
所有请求类都是继承OrganizationRequest,所有响应都是继承OrganizationResponse类。
继承类这两个类的子类所附加的属性,最后都会放到Parameters属性中,Parameters是个键值对集合。

比如创建请求。它的请求类是:CreateRequest
它比OrganizationRequest父类只多出一个属性:Target
这个属性类型为Entity。

这个属性最后会以下类似的方式存入到Parameters中

request.Parameters["Target"] = request.Target;

然后执行Plugin时将Parameters赋给了PluginExecutionContext.InputParameters

当Plugin执行完成之后,返回Response
CreateResponse有个id属性,它是记录ID。

这个值会被保存在Request的Results集合里

Plugin执行到Post阶段时,Results将被赋给PluginExecutionContext.OutputParameters

所以我们可以通过
PluginExecutionContext.OutputParameters["id"]能取到当前创建记录的ID。