OutWit.Common.Proxy
1.0.0
See the version list below for details.
dotnet add package OutWit.Common.Proxy --version 1.0.0
NuGet\Install-Package OutWit.Common.Proxy -Version 1.0.0
<PackageReference Include="OutWit.Common.Proxy" Version="1.0.0" />
paket add OutWit.Common.Proxy --version 1.0.0
#r "nuget: OutWit.Common.Proxy, 1.0.0"
// Install OutWit.Common.Proxy as a Cake Addin #addin nuget:?package=OutWit.Common.Proxy&version=1.0.0 // Install OutWit.Common.Proxy as a Cake Tool #tool nuget:?package=OutWit.Common.Proxy&version=1.0.0
OutWit.Common.Proxy
OutWit.Common.Proxy
provides foundational classes and interfaces for creating proxy objects using static code generation. The library is designed for environments where dynamic generation (e.g., Castle DynamicProxy
) is not feasible, such as AoT compilation or Blazor.
Features
Interface for creating interceptors (
IProxyInterceptor
): Allows developers to configure interception of method, property, and event calls.ProxyTargetAttribute
: Used to mark interfaces that should be processed by the proxy generator.IProxyInvocation
Interface: Provides details about the invocation, including method name, parameters, return values, and their types.
Getting Started
Installation
Add OutWit.Common.Proxy
to your project via NuGet:
dotnet add package OutWit.Common.Proxy
Usage
Define an interface and mark it with the
ProxyTargetAttribute
:using OutWit.Common.Proxy; [ProxyTarget] public interface IExampleService { string GetData(int id); event EventHandler DataChanged; }
Implement a class that implements
IProxyInterceptor
to handle calls:public class ExampleInterceptor : IProxyInterceptor { public void Intercept(IProxyInvocation invocation) { Console.WriteLine($"Intercepted method: {invocation.MethodName}"); if (invocation.MethodName == "GetData") { invocation.ReturnValue = $"Data for ID {invocation.Parameters[0]}"; } } }
Integrate the
OutWit.Common.Proxy.Generator
library to generate the proxy for your interface (refer toREADME.md
forOutWit.Common.Proxy.Generator
).
Interfaces and Classes
ProxyTargetAttribute
: An attribute to mark interfaces that are processed by the proxy generator.IProxyInterceptor
: Interface for creating a handler for method, property, and event calls.IProxyInvocation
: Interface that describes a method/property/event invocation.ProxyInvocation
: Implementation ofIProxyInvocation
.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- OutWit.Common (>= 1.0.2)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on OutWit.Common.Proxy:
Package | Downloads |
---|---|
OutWit.Communication
WitCom - OutWit.Communication - the easiest and most natural way to communicate with .Net processes/services/clients |
|
OutWit.Common.Proxy.Generator
Static Interface proxy generatorl |
GitHub repositories
This package is not used by any popular GitHub repositories.