Создание метаданных объекта XRM

Я разрабатываю плагин XRM для Microsoft Dynamics CRM. Я хотел бы иметь возможность, используя только ссылки на сборки XRM и не код ядра CRM, создавать экземпляр объекта типа EntityMetadata. Мне удалось только объявить объект типа EntityMetadata:

EntityMetadata entityMetadata;

Используя код ядра CRM, объект типа EntityMetadata может быть создан следующим образом:

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

Ограничения моего проекта диктуют, что я использую только код XRM, и мне не разрешено ссылаться ни на одну из более знакомых сборок Microsoft.Crm.*.


person Darren Batchelor    schedule 27.04.2016    source источник
comment
это реальный проект или просто прикол для себя?   -  person Guido Preite    schedule 28.04.2016
comment
Сборки CRM уже доступны на сервере, поэтому сборка, которую вы регистрируете на сервере, не требует их слияния... вы уверены, что не можете ссылаться на них только для написания кода? Похоже на очень странное ограничение, не могли бы вы рассказать нам об этом подробнее?   -  person Polshgiant    schedule 28.04.2016


Ответы (2)


Один из вариантов: просто используйте сообщение RetrieveEntityRequest. Он уже находится в пространстве имен Microsoft.Xrm.Sdk.

Это то, что вы имеете в виду?

Подробнее здесь

person Jordi    schedule 28.04.2016

Спасибо за все ответы. Это доказательство концепции. Нас попросили удалить код из ядра CRM и полагаться в первую очередь на сборки XRM. Вот подход, который мы придумали для EntityMetadata:

DynamicMetadataCache metadata = MetadataCache.GetInstance(((PipelineExecutionContext)context).PlatformContext);
EntityMetadata entityMetadata = metadata.GetEntity(entity.LogicalName, NameMappingType.Logical);
person Darren Batchelor    schedule 20.06.2016