QueryPack.DispatchProxy
1.0.5
dotnet add package QueryPack.DispatchProxy --version 1.0.5
NuGet\Install-Package QueryPack.DispatchProxy -Version 1.0.5
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="QueryPack.DispatchProxy" Version="1.0.5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add QueryPack.DispatchProxy --version 1.0.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: QueryPack.DispatchProxy, 1.0.5"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install QueryPack.DispatchProxy as a Cake Addin
#addin nuget:?package=QueryPack.DispatchProxy&version=1.0.5
// Install QueryPack.DispatchProxy as a Cake Tool
#tool nuget:?package=QueryPack.DispatchProxy&version=1.0.5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
QueryPack.DispatchProxy
Simple interception implementation based on System.Reflection.DispatchProxy
. Allows you to create type-safe interceptors for individual methods. Supports standard dependency injection. Has direct access to intercepted instance.
Getting Started
- Install the package into your project
dotnet add package QueryPack.DispatchProxy
- Add interception configuration
class EntityInterceptorProxyFactoryBuilder : InterceptorProxyFactoryBuilder<Context, IEntityService>
{
public void AddInterceptor(IInterceptorBuilder<Context, IEntityService> interceptorBuilder)
{
interceptorBuilder
.OnMethodExecuting<string, EntityArg, CancellationToken, Task<EntityResult>>(e => e.CreateAsync,
async (ctx, service, id, arg, token, invoker) =>
{
// code before method call
var result = await invoker.Invoke();
// code after method call
return result;
})
}
}
- Register interception configuration in
Startup
services.AddInterceptorFor(new EntityInterceptorProxyFactoryBuilder());
- Service method call
IEntityService entitySerice;
var result = await entitySerice.CreateAsync("some_id", new EntityArg(), CancellationToken.None);
- Use cases
Access Control
: Verify if the current user has the necessary permissions to invoke a specific method.Input Validation
: Validate the input parameters of the invoked method to ensure they meet the required format or constraints.Output Validation
: Validate the output of the invoked method to ensure it meets the expected format or constraints.Data Replication
: Use the result of the method execution to replicate data to other data sources.Event Sourcing
: Generate an event before or after the method is executed to capture and store the changes made to the data.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- Microsoft.Extensions.DependencyInjection (>= 7.0.0)
-
net6.0
- Microsoft.Extensions.DependencyInjection (>= 7.0.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on QueryPack.DispatchProxy:
Package | Downloads |
---|---|
QueryPack.Audit
Simple implementation of audit and event sourcing based on QueryPack.DispatchProxy |
|
QueryPack.Auth
Simple implementation of access control based on QueryPack.DispatchProxy |
GitHub repositories
This package is not used by any popular GitHub repositories.