Dataverse Plugin executionContextID Показывает различное GUID Каждое выполнение - экземпляры не кэшируются?C#

Место общения программистов C#
Ответить
Anonymous
 Dataverse Plugin executionContextID Показывает различное GUID Каждое выполнение - экземпляры не кэшируются?

Сообщение Anonymous »

Согласно документации Microsoft по разработке реализаций iplugin как без сохранения: < /p>

"Поскольку платчковые классы Platform Caches, конструктор не требуется для каждого вызова плагин-выполнения." < /p>
< /blockquote>
Однако, когда я тестирую это поведение, я вижу различные результаты. /> Код для воспроизведения: < /p>
public class TestPlugin : IPlugin
{
private Guid ExecutionContextId { get; } = Guid.NewGuid();

public void Execute(IServiceProvider serviceProvider)
{
var tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
tracingService.Trace($"ExecutionContextId: {ExecutionContextId}");
}
}
< /code>
Ожидаемое поведение: на основе документации одно и то же руководство должно быть зарегистрировано несколько раз, потому что экземпляр плагина должен быть кэширован и повторно используется. < /p>
Фактическое поведение: каждое выполнение регистрирует различное руководство, указывающее на новое экземпляры каждый раз. < /p>
. Среда) /> Протестировано с несколькими выполнениями в быстрой последовательности < /li>
Проверенные журналы трассировки - определенно разные гииды каждый раз < /li>
< /ol>
Вопрос < /strong>: изменилась ли модель выполнения плагина в Dataverse? Устарела ли документация, или я недоразумюсь, как работает кэширование плагина?>

Подробнее здесь: https://stackoverflow.com/questions/797 ... ion-instan
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»