图 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。