2013-04-30 41 views
2

自从7个月前我就开始用CRM了。我仍然不知道是什么,为什么使用以及为什么这些变量。什么是插件CRM中的Context,serviceFactory和Service 2011

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); 
} 

我已经搜索了没有任何运气的答案。

感谢

回答

1

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

总之,这里有云:

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

我明白了。非常感谢! – 2013-04-30 16:06:29

+0

serviceFactory.CreateOrganizationService(context.UserId):如果一个用户属于多个组织,该怎么办? – Sean 2016-08-09 07:28:24

1

IPluginExectionContext:

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

IPluginExecutionContext上下文=(IPluginExecutionContext)serviceProvider.GetService(typeof运算( IPluginExecutionContext));

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