Defines CQS-style contracts using Functional primitives:
IQueryParameters<TResult>
, a marker interface for query parameter objects that associates the query parameter object with the type of result that is returned when invoking the query handlerIQueryHandler<TQuery, TResult>
, for synchronous query handlingIAsyncQueryHandler<TQuery, TResult>
, for asynchronous query handlingICommandParameters<TError>
, a marker interface for command parameter objects that associates the command parameter object with the type of error that can potentially occur when invoking the command handlerICommandHandler<TCommand, TError>
, for synchronous command handlingIAsyncCommandHandler<TCommand, TError>
, for asynchronous command handling
Functional.CQS.AOP
is a set of NuGet packages that provide decoration facilities over implementations of Functional.CQS
contracts (listed above), specifically for aspect-oriented programming / applying cross-cutting concerns.
You can find examples demonstrating how to use the various Functional.CQS.AOP
libraries via the links below. Note that a general understanding of dependency injection, the decorator pattern, and onion architecture is assumed.
- Integrating
Functional.CQS.AOP
when using Pure DI (no dependency injection container) - Integrating
Functional.CQS.AOP
when using theSimpleInjector
dependency injection container
If you encounter problems with any Functional.CQS.AOP
package, some documentation is unclear, or you have questions not adequately answered by the existing documentation, please report an issue.