1.jwt
网上很多封装教程,
简单来说就是创建一个信息载荷(SecurityToken)然后SecurityTokenHandler.WriteToken()创建一个token
附上MS官网文档
SecurityTokenHandler.WriteToken Method (System.IdentityModel.Tokens) | Microsoft Learn
2.sqlsugar
简单封装,创建一个类继承
public class Repository<T> : SimpleClient<T> where T : class, new()
{
public Repository(ISqlSugarClient db)
{
base.Context=db;
}
/// <summary>
/// 扩展方法,自带方法不能满足的时候可以添加新方法
/// </summary>
/// <returns></returns>
public List<T> CommQuery(string json)
{
//base.Context.Queryable<T>().ToList();可以拿到SqlSugarClient 做复杂操作
return null;
}
}
然后注入.net服务
services.AddScoped<ISqlSugarClient>(s =>
{
//Scoped用SqlSugarClient
SqlSugarClient sqlSugar = new SqlSugarClient (new ConnectionConfig()
{
DbType = SqlSugar.DbType.Sqlite,
ConnectionString = "DataSource=sqlsugar-dev.db",
IsAutoCloseConnection = true,
},
db =>
{
//单例参数配置,所有上下文生效
db.Aop.OnLogExecuting = (sql, pars) =>
{
//获取IOC对象不要求在一个上下文
//vra log=s.GetService<Log>()
//获取IOC对象要求在一个上下文
//var appServive = s.GetService<IHttpContextAccessor>();
//var log= appServive?.HttpContext?.RequestServices.GetService<Log>();
};
});
return sqlSugar;
});
附上官网地址
仓储定义 - SqlSugar 5x - .NET果糖网 (donet5.com)
3.autoMapper
继承 Profile类,写入mapping配置关系
public class OrganizationProfile : Profile
{
public OrganizationProfile()
{
CreateMap<Foo, FooDto>();
// Use CreateMap... Etc.. here (Profile methods are the same as configuration methods)
}
}
注入service
services.AddAutoMapper(typeof(OrganizationProfile), typeof(ProfileTypeFromAssembly2) /*, ...*/);
附上官网地址
Configuration — AutoMapper documentation
4.自动依赖注入
原理就是创建一个实例,反射获取其子类和接口,自动注入进service
5.filter
继承AuthorizeFilter,重写OnAuthorization方法,从方法参数context中获取token然后解析