Frühere Bindung des Vorbereitungsbindung in Microsoft CRM 2011
-
26-10-2019 - |
Frage
Die Microsoft CRM Advanced Developer Extensions haben mich mit ihrer frühen Bindung für Anrufe an CRMs Webservices ein wenig verwöhnt.
Ich schreibe gerade ein Plugin und ich möchte auf Attribute zugreifen, die im Vorbild definiert sind. Alle Beispiele haben das Vorbild als Microsoft. Ich mag es nicht, all diese Zeichenfolge für Attributnamen in mein Plugin zu schärfen, und möchte eine Methode finden, die sie durch frühzeitige Bindung vermeidet.
Hier ist ein Beispiel für eine Besetzung
var preMessageImage = (Microsoft.Xrm.Sdk.Entity)context.PreEntityImages["MyPreImage"];
Aber ich muss eine verspätete Bindung verwenden, um auf die Eigenschaften zuzugreifen
var myProperty = preMessageImate.Properties["MyProperty"];
Gibt es eine Möglichkeit, dieses Vorbild einem XRM -Objekt zu geben, das alle Eigenschaften mit der frühen Bindung definiert hat, sodass ich nicht alle Eigenschaftsnamen hardcodieren muss?
Lösung
Sie sollten zunächst das CRMSVCutil-Tool im SDK verwenden, um "Frühgebundene" XRM-Entitäten zu generieren und diese Codedatei in Ihre Plugin-Codebasis aufzunehmen.
Ich schlage vor, die Befehlszeile "DataContextName" zu unterlassen, sodass kein Kontext generiert wird.
Weitere Informationen finden Sie hier auf MSDN: Crmsvcutil auf msdn
Als nächstes sollten Sie die verwenden ToEntity<T>
Methode in der Entitätsklasse, um eine stark typische bestimmte Entität zu erhalten. Weitere Informationen hier: Toentity auf MSDN