Я изучаю разработку плагинов Dynamics 365.Dynamics 365 Исключение блокировки SDK плагина при обновлении строго типизированного объекта в режиме песочницы
Проблема: При вызове метода Update на строго типизированном объекте я получаю исключение. Точное сообщение об ошибке:
«System.Runtime.Serialization.SerializationException: Microsoft Dynamics CRM произошла ошибка Ссылочный номер для администраторов или поддержки:. # 1330ADC1»
Моя установка: Мое решение содержит простой плагин. Я создал строго типизированную учетную запись объекта. Режим изоляции плагина - это песочница. Поле Telephone1 - это строка.
Я извлекаю учетную запись из CRM, затем обновляю поле Telephone1 до нового значения и обновляю запись учетной записи. Простой :)
Код:
public class PostOperationaccountUpdate: IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
var organisationService = serviceProvider.GetService(typeof (IOrganizationService)) as IOrganizationService;
var context = serviceProvider.GetService(typeof (IPluginExecutionContext)) as IPluginExecutionContext;
var entityAccount = context.InputParameters["Target"] as Entity;
var id = entityAccount.Id;
var account = organisationService.Retrieve("account", id, new ColumnSet("telephone1"));
//Get a strongly typed version of the Account entity
var dbAccount = account.ToEntity<Account>();
//Update the telephone1 field using the "old" way
account["telephone1"] = "1234567890";
try
{
//This will pass
organisationService.Update(account);
//Update the strongly typed Account
dbAccount.Telephone1 = "plop";
//This fails
organisationService.Update(dbAccount);
}
catch (Exception ex)
{
throw;
}
}
}
Что я пробовал: -> Я изменил режим изоляции плагина к None - это работает! В соответствии с передовой практикой, не рекомендуется
Спасибо за помощь Чарльз
ли он работает в песочнице, если вы задерживаетесь? – Alex
Является ли строго типизированный класс Account в другой DLL случайно? Если это так, я считаю, что вам придется его разложить в DLL плагина. Вы можете быстро проверить это, добавив класс Account.cs непосредственно в проект плагинов. – Polshgiant
@Alex: Да. Если я сделаю, я сделаю это поздним и песочницей, он работает – h4ck3r8ug5