Task ExecuteAsync<TContext>(
Expression<ExtensionMethodReferenceAsync<TExtension, TContext>> method,
TContext context,
Func<IExtensionStrategyContext, ValueTask> handleExceptionAsync = null,
bool continueOnCapturedContext = false,
bool ignoreContextCancellation = false
)
where TContext : class, IExtensionContext
Function ExecuteAsync(Of TContext As {Class, IExtensionContext}) (
method As Expression(Of ExtensionMethodReferenceAsync(Of TExtension, TContext)),
context As TContext,
Optional handleExceptionAsync As Func(Of IExtensionStrategyContext, ValueTask) = Nothing,
Optional continueOnCapturedContext As Boolean = false,
Optional ignoreContextCancellation As Boolean = false
) As Task
generic<typename TContext>
where TContext : ref class, IExtensionContext
Task^ ExecuteAsync(
Expression<ExtensionMethodReferenceAsync<TExtension, TContext>^>^ method,
TContext context,
Func<IExtensionStrategyContext^, ValueTask>^ handleExceptionAsync = nullptr,
bool continueOnCapturedContext = false,
bool ignoreContextCancellation = false
)
abstract ExecuteAsync :
method : Expression<ExtensionMethodReferenceAsync<'TExtension, 'TContext>> *
context : 'TContext *
?handleExceptionAsync : Func<IExtensionStrategyContext, ValueTask> *
?continueOnCapturedContext : bool *
?ignoreContextCancellation : bool
(* Defaults:
let _handleExceptionAsync = defaultArg handleExceptionAsync null
let _continueOnCapturedContext = defaultArg continueOnCapturedContext false
let _ignoreContextCancellation = defaultArg ignoreContextCancellation false
*)
-> Task when 'TContext : not struct and IExtensionContext
Метод, выполняющийся при обработке исключений для каждого экземпляра расширений после того, как была выполнена трассировка расширения.
Метод может изменить IExtensionStrategyContext, в т.ч. установить режим обработки исключений в свойстве ExceptionHandlingMode.
Укажите null, если метод не требуется выполнять.
Признак того, что выполнение асинхронных методов должно быть продолжено на том же контексте SynchronizationContext, на котором оно было начато, если таковой был.
Обычно это означает, что при запуске расширений из потока UI каждый метод расширения будет выполнен на потоке UI.
Признак того, что токен отмены context.CancellationToken не будет использоваться во внутренней реализации метода. При этом токен может быть задействован в выполняемых методах расширений.
Рекомендуется указывать для Finally-расширений, где исключения OperationCanceledException в обработчике handleExceptionAsync не должны прерывать выполнение последующих расширений.
ArgumentNullException | Параметры method или context равны null. |