c# – 如何在Microsoft Dynamics CRM 2011中没有ExecutionContext.CallerOrigin的情况下阻止无限循环?

前端之家收集整理的这篇文章主要介绍了c# – 如何在Microsoft Dynamics CRM 2011中没有ExecutionContext.CallerOrigin的情况下阻止无限循环?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Microsoft Dynamics CRM 4.0中创建插件时,您可以使用以下内容检查导致插件触发的事件的来源.
public void Execute(IPluginExecutionContext context)
    {
        if (context.CallerOrigin.GetType() == CallerOrigin.WebServiceApi.GetType())
        {
            return;
        }
        plugin code here...
     }

这将允许您检查操作是由表单中的用户,Web服务还是工作流等引起的…

我有一个同步应用程序,它通过WCF创建和更新实体,并且不希望插件在发生这种情况时执行,只有当用户编辑实体时(以防止同步过程中出现无限循环).

IExecutionContext.CallerOrigin已在MS Dynamics CRM 2011中删除,那么新的方法是什么?

我想可能有一种方法可以在WCF调用中设置IExecutionContext.CorrelationId,然后检查插件中的特定Guid,但我还没有运气.

解决方法

你看过IPluginExecutionContext.InputParameters了吗?

另一种选择是修改你的插件,如果没有变化就不更新任何东西,这将阻止无限循环的可能性.

猜你在找的C#相关文章