2013-07-12 73 views
1

我正在捡起一个剩下的项目,所以我很抱歉如果我没有把它弄清楚。CRM 2011,如何使用反射创建自定义实体的实例?

我需要能够根据需要动态创建MS CRM对象的实例,而不必知道它将提前做些什么。

它正在为默认情况下与CRM一起来的所有实体工作,但我有一个时间获得自定义实体的解决方案。

我拥有的是以下内容。

string myAssembly - assemblyPrefix + ObjectInst.Id; 
object msdObject = Activator.CreateIntance(Type.GetType(myassembly)); 

Where ObjectInst.Id =实体逻辑名称。

当我这样做和ObjectInst.Id = account(例如)或任何CRM来的实体。我想做的事很棒!

当我为自定义实体的任何实体执行此操作时,它将返回空值。

我猜测它与工作类型是CRM中预定义的类型有关,但必须有一种方法可以与自定义实体一起完成此工作。希望??

回答

1

使用实体类所有自定义实体

CRM 2011 Entity type

+0

谢谢,给了我一个方向去;尽管它没有点击我们正在尝试做的事情。但是,应该向前走 - 它肯定比我有更多! – SkerryAmp

1

实体类可以在CRM处理任何实体。如果你想要早绑定的功能,你需要使用CrmSrvUtil生成类,并且使用IOrganizationService启用代理类型。无论哪种情况,您都不需要使用反射来创建对象。

+0

谢谢,正如我与其他答案一样 - 这是一个调查的方向,但不会跳出来说明它如何适用。问题是我对这些实体没有控制权或知识,他们对我完全不了解。检索可用的实体,然后将名称传递给在系统之间转换数据的此方法。所以我需要完全通用的东西,可以做到这一点。它与已知实体很好地合作,但习俗却不是。很多问题是我没有CRM经验,所以有点不知所措。尽管如此,至少给了我一个方向。 – SkerryAmp

+0

@SkerryAmp更深入地描述你的问题。你如何获取数据?网络服务?数据库调用?平面文件?实体本身可以对任何CRM实体执行CRUD操作。它没有属性来匹配字段,而是将所有数据存储在属性属性集合中。 – Daryl

相关问题