Microsoft CRM 2011 中 PreImage 的早期绑定
Microsoft CRM 高级开发人员扩展对 CRM Web 服务调用的早期绑定让我有点被宠坏了。
我现在正在编写一个插件,我想访问原像中定义的属性。所有示例都将原像投射为 Microsoft.Xrm.Sdk.Entity,它使用后期绑定来访问其属性。我不喜欢将属性名称的所有这些字符串硬编码到我的插件中,并且希望找到一种通过使用早期绑定来避免它的方法。
这是一个强制转换的示例
var preMessageImage = (Microsoft.Xrm.Sdk.Entity)context.PreEntityImages["MyPreImage"];
但我必须使用后期绑定来访问属性
var myProperty = preMessageImate.Properties["MyProperty"];
有没有办法将此原像强制转换为 xrm 对象,该对象具有使用早期绑定定义的所有属性,因此我不必对所有属性进行硬编码名字?
The Microsoft CRM advanced developer extensions have gotten me a little spoiled with their early binding for calls made to CRM's webservices.
I'm writing a plugin right now and I'd like to access attributes defined in the pre-image. All the examples cast the preimage as Microsoft.Xrm.Sdk.Entity which uses late binding to access it's attributes. I dislike hardcoding all those string's for attribute names into my plugin and would like to find a method that avoids it by using early binding.
Here is an example of a cast
var preMessageImage = (Microsoft.Xrm.Sdk.Entity)context.PreEntityImages["MyPreImage"];
But I have to use late binding to access the properties
var myProperty = preMessageImate.Properties["MyProperty"];
Is there any way to cast this preimage to an xrm object that has all the properties defined using early binding so I don't have to hardcode all the property names?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该首先使用 SDK 中的 crmsvcutil 工具生成“早期绑定”Xrm 实体,并将该代码文件包含在您的插件代码库中。
我建议省略“DataContextName”命令行参数,这样就不会生成上下文。
有关详细信息,请在 MSDN 上查看:MSDN 上的 CrmSvcUtil
接下来,您应该使用 Entity 类的
ToEntity
方法来获取强类型的特定实体。更多信息请参见:MSDN 上的 ToEntityYou should first use the crmsvcutil tool in the SDK to generate "early-bound" Xrm entities and include that code file in your plugin codebase.
I suggest omitting the 'DataContextName' command-line arg so not context is generated.
For more information check here on MSDN: CrmSvcUtil on MSDN
Next, you should use the
ToEntity<T>
method on the Entity class to get a strongly-typed specific entity. More info here: ToEntity on MSDN