Microsoft CRM 2011中PreImage的早期绑定

Tro*_*roy 2 dynamics-crm-2011

Microsoft CRM高级开发人员扩展程序让我对他们对CRM的Web服务调用的早期绑定有点不满.

我正在写一个插件,我想访问前映像中定义的属性.所有示例都将preimage转换为Microsoft.Xrm.Sdk.Entity,它使用后期绑定来访问它的属性.我不喜欢将属性名称的所有字符串硬编码到我的插件中,并希望找到一种通过使用早期绑定来避免它的方法.

这是一个演员的例子

var preMessageImage = (Microsoft.Xrm.Sdk.Entity)context.PreEntityImages["MyPreImage"]; 
Run Code Online (Sandbox Code Playgroud)

但我必须使用后期绑定来访问属性

var myProperty = preMessageImate.Properties["MyProperty"];
Run Code Online (Sandbox Code Playgroud)

有没有办法将这个preimage转换为具有使用早期绑定定义的所有属性的xrm对象,所以我不必硬编码所有的属性名称?

Gle*_*rie 7

您应首先使用SDK中的crmsvcutil工具生成"早期绑定"Xrm实体,并在插件代码库中包含该代码文件.

我建议省略'DataContextName'命令行arg,这样就不会生成上下文.

有关更多信息,请参阅MSDN上的:MSDN上的CrmSvcUtil

接下来,您应该使用ToEntity<T>Entity类上的方法来获取强类型的特定实体.更多信息:MSDN上的ToEntity