Раннее связывание PreImage в Microsoft CRM 2011 - PullRequest
2 голосов
/ 18 октября 2011

Расширения Microsoft CRM для продвинутых разработчиков меня немного испортили из-за их ранней привязки к звонкам на веб-сервисы CRM.

Я пишу плагин прямо сейчас, и я хотел бы получить доступ к атрибутам, определенным в предварительном изображении.Во всех примерах изображение отображается как Microsoft.Xrm.Sdk.Entity, который использует позднюю привязку для доступа к своим атрибутам.Мне не нравится жесткое кодирование всех этих строк для имен атрибутов в моем плагине, и я хотел бы найти метод, который избегает его, используя раннее связывание.

Вот пример приведения

var preMessageImage = (Microsoft.Xrm.Sdk.Entity)context.PreEntityImages["MyPreImage"]; 

НоЯ должен использовать позднюю привязку для доступа к свойствам

var myProperty = preMessageImate.Properties["MyProperty"];

Есть ли способ привести этот прообраз к объекту xrm, у которого все свойства определены с помощью ранней привязки, поэтому мне не нужно жестко кодировать всеимена свойств?

1 Ответ

7 голосов
/ 19 октября 2011

Сначала вы должны использовать инструмент crmsvcutil в SDK, чтобы сгенерировать "ранние" сущности Xrm и включить этот файл кода в кодовую базу вашего плагина.

Я предлагаю опустить аргумент командной строки 'DataContextName', чтобы не генерировать контекст.

Для получения дополнительной информации проверьте здесь на MSDN: CrmSvcUtil на MSDN

Далее, вы должны использовать метод ToEntity<T> в классе Entity для получения строго типизированной конкретной сущности.Более подробная информация здесь: ToEntity на MSDN

...