什么是插件CRM 2011中的Context,serviceFactory和Service

时间:2013-04-30 14:50:32

标签: c# dynamics-crm-2011

七个月前,我一直在使用CRM。我仍然不知道是什么,使用什么以及为什么这些变量。

public void Execute(IServiceProvider serviceProvider)
{

     Microsoft.Xrm.Sdk.IPluginExecutionContext context = (Microsoft.Xrm.Sdk.IPluginExecutionContext)
     serviceProvider.GetService(typeof(Microsoft.Xrm.Sdk.IPluginExecutionContext));

     IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory) serviceProvider.GetService(typeof(IOrganizationServiceFactory));

     IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
}

我没有运气就找到了答案。

由于

2 个答案:

答案 0 :(得分:1)

MSDN从Understand the Data Context开始提供一组很好的文章。

简而言之,就是这样:

  1. IPluginExecutionContext是将所有上下文信息带到您的代码的地方。 InputParametersOutputParameters成员包含例如插件被触发的记录,前后图像,处理过的消息(实际数据取决于您注册插件的方式: pre VS post,确切消息,在线或离线......
  2. IOrganizationService对象允许您查询组织服务。最常见的使用场景是CRUD操作(创建,检索,更新,删除:小心死锁)。

答案 1 :(得分:1)

<强> IPluginExectionContext:

  1. 定义在运行时传递给插件的上下文信息。包含描述插件正在执行的运行时环境的信息,与执行管道相关的信息以及实体业务信息。
  2. 执行上下文在运行时在Execute方法的System.IServiceProvider参数中传递给插件。您可以从服务提供者处获取上下文,如以下插件代码所示。 //从服务提供商处获取执行上下文。
  3. IPluginExecutionContext context =(IPluginExecutionContext)serviceProvider.GetService(typeof(                 IPluginExecutionContext));

    IOrganizationService接口: 提供对组织的元数据和数据的编程访问。