Target始终是实体还是EntityReference?

Kon*_*ten 4 c# plugins dynamics-crm-2011

我发现在我的一些代码中,我有以下语法来保护来自FUBARing的插件.我不能代表上帝的爱不记得为什么我把disjuction条件进行的EntityReference.

是Context.InputParameters [ "目标"]每一个的EntityReference?

bool goodToGo 
  = Context.InputParameters.Contains("Target")
    && Context.PrimaryEntityName == "email";
    && (
      Context.InputParameters["Target"] is Entity
      || Context.InputParameters["Target"] is EntityReference);
Run Code Online (Sandbox Code Playgroud)

它是除了实体以外的任何东西吗?

Gui*_*ite 10

目标也可以是来自MSDN的EntityReference:

请注意,并非所有请求都包含Entity类型的Target属性,因此您必须查看每个单独的请求或响应.例如,DeleteRequest确实具有Target属性,但其类型为EntityReference.

了解传递给插件的数据上下文

因此,根据插件的逻辑,您可能还需要检查EntityReference的属性类型.