Inkslab.Expressions 是一套基于原生Emit指令封装的类型生成器,封装了类似于Expression的表达式语法,简单易用。
First, install NuGet. Then, install Inkslab.Expressions from the package manager console:
PM> Install-Package Inkslab.Expressions
Package | NuGet | Downloads | Jane Says Markdown |
---|---|---|---|
Inkslab.Expressions | Core universal design. | ||
Inkslab.Intercept | AOP framework based on method return types. |
-
实现“InterceptAttribute”、“InterceptAsyncAttribute”、“ReturnValueInterceptAttribute”或“ReturnValueInterceptAsyncAttribute”拦截器属性。
ReturnValueInterceptAsyncAttribute
支持返回值类型为Task<T>
和ValueTask<T>
的方法。ReturnValueInterceptAttribute
支持返回值类型为T
、Task<T>
和ValueTask<T>
的方法。InterceptAsyncAttribute
支持返回值类型为Task
、ValueTask
、Task<T>
和ValueTask<T>
的方法。InterceptAttribute
支持返回值类型为void
的方法。
注:文档中的
T
是排除Task
、ValueTask
、Task<>
和ValueTask<>
类型或声明类型之外的类型。 -
在依赖注入的接口或类中方法,标记相对于的属性。
-
使用拦截器“UseIntercept”,会自动检测当前服务集合中 “ServiceDescriptor” . “ServiceType” 服务类,并自动完成类型代理。
public class Startup {
public void ConfigureServices(IServiceCollection services) {
// 在此语句之前注入的服务实现,会自动生成拦截类。
services.UseIntercept();
}
}