OutWit.Common.Proxy
1.2.1
dotnet add package OutWit.Common.Proxy --version 1.2.1
NuGet\Install-Package OutWit.Common.Proxy -Version 1.2.1
<PackageReference Include="OutWit.Common.Proxy" Version="1.2.1" />
<PackageVersion Include="OutWit.Common.Proxy" Version="1.2.1" />
<PackageReference Include="OutWit.Common.Proxy" />
paket add OutWit.Common.Proxy --version 1.2.1
#r "nuget: OutWit.Common.Proxy, 1.2.1"
#:package OutWit.Common.Proxy@1.2.1
#addin nuget:?package=OutWit.Common.Proxy&version=1.2.1
#tool nuget:?package=OutWit.Common.Proxy&version=1.2.1
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.IProxyInvocationInterface: 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
IProxyInterceptorto 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.Generatorlibrary to generate the proxy for your interface (refer toREADME.mdforOutWit.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 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 is compatible. 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 is compatible. 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 is compatible. 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. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.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.3.1)
-
net10.0
- OutWit.Common (>= 1.3.1)
-
net6.0
- OutWit.Common (>= 1.3.1)
-
net7.0
- OutWit.Common (>= 1.3.1)
-
net8.0
- OutWit.Common (>= 1.3.1)
-
net9.0
- OutWit.Common (>= 1.3.1)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on OutWit.Common.Proxy:
| Package | Downloads |
|---|---|
|
OutWit.Communication
The core communication library of the WitRPC framework, providing base RPC functionality such as messaging, dynamic proxy support, and extensibility for multiple transports, serialization formats, and encryption. |
|
|
OutWit.Common.Proxy.Generator
The Roslyn Source Generator for the OutWit proxy library. Add this package to your project to automatically generate proxy implementations for your interfaces at compile-time. |
GitHub repositories
This package is not used by any popular GitHub repositories.