2013-07-12 72 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

相關問題