tinylit / inkslab.expressions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Inkslab

GitHub language codeSize GitHub issues

“Inkslab.Expressions”是什么?

Inkslab.Expressions 是一套基于原生Emit指令封装的类型生成器,封装了类似于Expression的表达式语法,简单易用。

如何安装?

First, install NuGet. Then, install Inkslab.Expressions from the package manager console:

PM> Install-Package Inkslab.Expressions

NuGet 包

Package NuGet Downloads Jane Says Markdown
Inkslab.Expressions Inkslab.Expressions Nuget Core universal design.
Inkslab.Intercept DeltaExpression.AOP Nuget AOP framework based on method return types.

如何使用?

  • 实现“InterceptAttribute”、“InterceptAsyncAttribute”、“ReturnValueInterceptAttribute”或“ReturnValueInterceptAsyncAttribute”拦截器属性。

    • ReturnValueInterceptAsyncAttribute 支持返回值类型为Task<T>ValueTask<T>的方法。
    • ReturnValueInterceptAttribute 支持返回值类型为 TTask<T>ValueTask<T>的方法。
    • InterceptAsyncAttribute 支持返回值类型为TaskValueTaskTask<T>ValueTask<T>的方法。
    • InterceptAttribute 支持返回值类型为 void 的方法。

    注:文档中的 T 是排除 TaskValueTaskTask<>ValueTask<>类型或声明类型之外的类型。

  • 在依赖注入的接口或类中方法,标记相对于的属性。

  • 使用拦截器“UseIntercept”,会自动检测当前服务集合中 “ServiceDescriptor” . “ServiceType” 服务类,并自动完成类型代理。

public class Startup {

	public void ConfigureServices(IServiceCollection services) {
		// 在此语句之前注入的服务实现,会自动生成拦截类。
		services.UseIntercept();
	}
}

About

License:MIT License


Languages

Language:C# 100.0%