CardComponentHelperExtendRequestAsyncTRequest, TResponse, TContext, TExtension - метод |
Дополняет запрос к API карточек цепочками расширений.
Пространство имён:
Tessa.Cards.ComponentModel
Сборка:
Tessa (в Tessa.dll) Версия: 3.5.0.19
Синтаксис public static Task<TResponse> ExtendRequestAsync<TRequest, TResponse, TContext, TExtension>(
Object validationObject,
IExtensionContainer extensionContainer,
TContext context,
Func<IExtensionExecutor<TExtension>, CancellationToken, Task<TResponse>> performRequestFuncAsync,
Expression<ExtensionMethodReferenceAsync<TExtension, TContext>> beforeRequestExpression,
Expression<ExtensionMethodReferenceAsync<TExtension, TContext>> afterRequestExpression,
Func<TContext, TResponse, CancellationToken, ValueTask> coerceContextActionAsync = null,
CancellationToken cancellationToken = default
)
where TRequest : CardInfoStorageObject
where TResponse : new(), CardResponseBase
where TContext : CardExtensionContext, ICardRequestExtensionContext<TRequest, TResponse>
where TExtension : class, ICardExtension
Public Shared Function ExtendRequestAsync(Of TRequest As CardInfoStorageObject, TResponse As {New, CardResponseBase}, TContext As {CardExtensionContext, ICardRequestExtensionContext(Of TRequest, TResponse)}, TExtension As {Class, ICardExtension}) (
validationObject As Object,
extensionContainer As IExtensionContainer,
context As TContext,
performRequestFuncAsync As Func(Of IExtensionExecutor(Of TExtension), CancellationToken, Task(Of TResponse)),
beforeRequestExpression As Expression(Of ExtensionMethodReferenceAsync(Of TExtension, TContext)),
afterRequestExpression As Expression(Of ExtensionMethodReferenceAsync(Of TExtension, TContext)),
Optional coerceContextActionAsync As Func(Of TContext, TResponse, CancellationToken, ValueTask) = Nothing,
Optional cancellationToken As CancellationToken = Nothing
) As Task(Of TResponse)
public:
generic<typename TRequest, typename TResponse, typename TContext, typename TExtension>
where TRequest : CardInfoStorageObject
where TResponse : gcnew(), CardResponseBase
where TContext : CardExtensionContext, ICardRequestExtensionContext<TRequest, TResponse>
where TExtension : ref class, ICardExtension
static Task<TResponse>^ ExtendRequestAsync(
Object^ validationObject,
IExtensionContainer^ extensionContainer,
TContext context,
Func<IExtensionExecutor<TExtension>^, CancellationToken, Task<TResponse>^>^ performRequestFuncAsync,
Expression<ExtensionMethodReferenceAsync<TExtension, TContext>^>^ beforeRequestExpression,
Expression<ExtensionMethodReferenceAsync<TExtension, TContext>^>^ afterRequestExpression,
Func<TContext, TResponse, CancellationToken, ValueTask>^ coerceContextActionAsync = nullptr,
CancellationToken cancellationToken = CancellationToken()
)
static member ExtendRequestAsync :
validationObject : Object *
extensionContainer : IExtensionContainer *
context : 'TContext *
performRequestFuncAsync : Func<IExtensionExecutor<'TExtension>, CancellationToken, Task<'TResponse>> *
beforeRequestExpression : Expression<ExtensionMethodReferenceAsync<'TExtension, 'TContext>> *
afterRequestExpression : Expression<ExtensionMethodReferenceAsync<'TExtension, 'TContext>> *
?coerceContextActionAsync : Func<'TContext, 'TResponse, CancellationToken, ValueTask> *
?cancellationToken : CancellationToken
(* Defaults:
let _coerceContextActionAsync = defaultArg coerceContextActionAsync null
let _cancellationToken = defaultArg cancellationToken new CancellationToken()
*)
-> Task<'TResponse> when 'TRequest : CardInfoStorageObject when 'TResponse : new() and CardResponseBase when 'TContext : CardExtensionContext and ICardRequestExtensionContext<'TRequest, 'TResponse> when 'TExtension : not struct and ICardExtension
Параметры
- validationObject
- Тип: SystemObject
Объект, от имени которого выполняется валидация. - extensionContainer
- Тип: Tessa.ExtensionsIExtensionContainer
Контейнер, содержащий зарегистрированные расширения. - context
- Тип: TContext
Контекст, передаваемый между расширениями в цепочке. - performRequestFuncAsync
- Тип: SystemFuncIExtensionExecutorTExtension, CancellationToken, TaskTResponse
Функция, которая принимает объект, выполняющий расширения, осуществляет запрос к API карточек и возвращает ответ.
- beforeRequestExpression
- Тип: System.Linq.ExpressionsExpressionExtensionMethodReferenceAsyncTExtension, TContext
Выражение, ссылающееся на цепочку расширений, выполняемых перед запросом к API карточек.
- afterRequestExpression
- Тип: System.Linq.ExpressionsExpressionExtensionMethodReferenceAsyncTExtension, TContext
Выражение, ссылающееся на цепочку расширений, выполняемых после запроса к API карточек.
- coerceContextActionAsync (Optional)
- Тип: SystemFuncTContext, TResponse, CancellationToken, ValueTask
Метод, выполняющий корректировку контекста перед вызовом цепочки расширений afterRequestExpression,
или null, если корректировка не требуется.
- cancellationToken (Optional)
- Тип: System.ThreadingCancellationToken
Объект, посредством которого можно отменить асинхронную задачу.
Параметры типа
- TRequest
-
Тип запроса к API карточек.
Должен быть унаследован от класса CardInfoStorageObject.
- TResponse
-
Тип ответа на запрос к API карточек.
Должен быть унаследован от класса CardResponseBase и иметь открытый конструктор по умолчанию.
- TContext
-
Тип контекста, используемого в расширениях.
Должен быть унаследован от класса CardExtensionContext,
и должен реализовывать интерфейс ICardRequestExtensionContextTRequest, TResponse.
- TExtension
-
Ссылочный тип расширений.
Должен реализовывать интерфейс ICardExtension.
Возвращаемое значение
Тип:
TaskTResponseОтвет на запрос к API карточек, который мог быть изменён цепочками расширений.
См. также