Service 主要面向数据库,为数据库提供一个统一的 CURD
接口。在日常的使用中,通常把 Service 层注册为 Scoped
类型,随着上下文变动。
在实际开发中,会有非常多的 Service,可以使用如下方法将这些 Service
进行批量注册:
定义服务基类
首先,需要定义一个空接口 IService
,所有的 Service
都继承该接口,这样就可以找到当前程序集中所有实现了 IService
接口的类进行批量注册。
批量注册
直接上代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public static IServiceCollection MapServices(this IServiceCollection services) { var serviceBaseType = typeof(IService); var serviceTypeList = Assembly.GetCallingAssembly() .GetTypes() .Where(x => !x.IsAbstract && serviceBaseType.IsAssignableFrom(x)) .ToList(); serviceTypeList.ForEach(type => services.AddTransient(type)); return services; }
builder.services.MapServices();
|