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

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