Feather.Interceptor 1.0.0

dotnet add package Feather.Interceptor --version 1.0.0                
NuGet\Install-Package Feather.Interceptor -Version 1.0.0                
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="Feather.Interceptor" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Feather.Interceptor --version 1.0.0                
#r "nuget: Feather.Interceptor, 1.0.0"                
#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 Feather.Interceptor as a Cake Addin
#addin nuget:?package=Feather.Interceptor&version=1.0.0

// Install Feather.Interceptor as a Cake Tool
#tool nuget:?package=Feather.Interceptor&version=1.0.0                

切面拦截方法(AOP)

现有类Circle,接口IShape 拦截属性标记AppInterceptorAttribute,containerBuilder 为Autofac容器

同步拦截 AppSyncException

1.注入类拦截 拦截方法属性标记,并设置为virtual方法

containerBuilder.RegisterInterceptor<Circle, AppAsyncException>()

public class Circle
{
    [AppInterceptor(typeof(int))]
    public virtual int Calculate(int size)
    {
        return size * size;
    }
 }

2.注入接口拦截 接口属性标记

containerBuilder.RegisterInterceptor<Circle,IShape, AppAsyncException>()

public interface IShape
{
    [AppInterceptor(typeof(int))]
    int Calculate(int size);
}
public class Circle : IShape
{
    public int Calculate(int size)
    {
        return size * size;
    }
}

异步拦截 AppAsyncException

1.注入类拦截 拦截方法属性标记,并设置为virtual方法

containerBuilder.RegisterInterceptor<Circle, AppAsyncException>()

public class Circle
{
    [AppInterceptor(typeof(int))]
    public virtual async Task<int> CalculateAsync(int size)
    {
        return size * size;
    }
 }

2.注入接口拦截 属性标记接口

containerBuilder.RegisterInterceptor<Circle,IShape, AppAsyncException>()

public interface IShape
{
       
    Task<int> CalculateAsync(int size);
}
public class Circle : IShape
{
	[AppInterceptor(typeof(int))]
    public async Task<int> CalculateAsync(int size)
    {
        return size * size;
    }
}
Product 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. 
.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.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.0 150 9/20/2023

AOP同步和异步方法拦截