2016-04-27 2 views
0

Ich entwickle ein XRM-Plugin für Microsoft Dynamics CRM. Ich möchte nur mit XRM-Assembly-Referenzen und ohne CRM-Kernel-Code ein Objekt vom Typ EntityMetadata instanziieren können. Ich habe nur in der Lage gewesen, so weit zu bekommen, wie ein Objekt vom Typ EntityMetadata erklärt:Erstellen XRM EntityMetadata

EntityMetadata entityMetadata; 

CRM-Kernel-Code verwenden, ein Objekt vom Typ EntityMetadata kann wie folgt instanziiert werden:

EntityMetadata entityMetadata = MetadataCache.GetInstance(((PipelineExecutionContext)context).PlatformContext) 
            .GetEntity(entityName, NameMappingType.Logical); 

Die Einschränkungen meines Projekts diktieren, dass ich nur XRM-Code verwende, und ich darf keine der bekannteren Microsoft.Crm. * - Assemblies verweisen.

+2

Dies ist ein echtes Projekt oder nur ein POC für sich selbst? –

+1

Die CRM-Assemblys sind bereits auf dem Server verfügbar, daher muss die Assembly, die Sie auf dem Server registrieren, sie nicht zusammenführen ... Sind Sie sicher, dass Sie sie nicht referenzieren können, nur um Ihren Code zu schreiben? Scheint wie eine sehr seltsame Einschränkung, können Sie uns mehr darüber erzählen? – Polshgiant

Antwort

0

Eine Option: Verwenden Sie einfach eine RetrieveEntityRequest-Nachricht. Es ist bereits im Microsoft.Xrm.Sdk-Namespace.

Ist das was du meinst?

Mehr Infos here

0

Danke für alle Antworten. Dies ist ein Proof of Concept. Wir wurden aufgefordert, den Code aus dem CRM-Kernel zu entfernen und uns hauptsächlich auf XRM-Assemblies zu verlassen. Hier ist der Ansatz, den wir für EntityMetadata entwickelt haben:

DynamicMetadataCache metadata = MetadataCache.GetInstance(((PipelineExecutionContext)context).PlatformContext); 
EntityMetadata entityMetadata = metadata.GetEntity(entity.LogicalName, NameMappingType.Logical); 
Verwandte Themen