当前位置: 首页 > news >正文

营销展示型网站模板杭州手机网站

营销展示型网站模板,杭州手机网站,dw网页制作考试题目,聊城企业做网站推广.Net Core根据文件名称自动注入服务 说明分析逻辑所有代码一键注入 说明 这个适用于.Net Core 的Web项目,且需要在服务中注入接口的需求.因为之前些Java Web习惯了,所以会有Dao层,Serivce层和Controller层.但是如果一个项目里面对于不同的数据库会有多个Dao,如果一个一个引入会…

.Net Core根据文件名称自动注入服务

  • 说明
  • 分析逻辑
  • 所有代码
  • 一键注入

说明

这个适用于.Net Core 的Web项目,且需要在服务中注入接口的需求.因为之前些Java Web习惯了,所以会有Dao层,Serivce层和Controller层.但是如果一个项目里面对于不同的数据库会有多个Dao,如果一个一个引入会造成代码.可读性变差.使用以下方法可以根据文件命名来提取固定的接口与实现类,并自动注入 到服务中.

分析逻辑

首先知道注入接口的方法为:

  services.AddScoped(interfaceType, type);

通过映射的方法扫描项目中所有文件命名(如果怕效率低也可以只扫描制定目录下文件),我这里定义接口以Dao结尾,实现类以DaoImpl结尾,以此定义两个变量:

 var interfaceSuffix = "Dao";var implementationSuffix = "DaoImpl";

然后根据检索文件名称,拿到接口与实现类的列表:

var interfaceTypes = assembly.GetTypes().Where(t => t.IsInterface && t.Name.EndsWith(interfaceSuffix)).ToArray();var types = assembly.GetTypes().Where(t => t.IsClass && !t.IsAbstract && t.Name.EndsWith(implementationSuffix)).ToList();

再将两个list结合,批量写入:

            foreach (var interfaceType in interfaceTypes){foreach (var type in types){var interfaceName = type.GetInterfaces().FirstOrDefault(i => i.Name == interfaceType.Name)?.Name;if (interfaceName != null){services.AddScoped(interfaceType, type);}}}

所有代码

public static class ServiceCollectionExtensions
{public static IServiceCollection AddDaosWithConvention(this IServiceCollection services, Assembly assembly){var interfaceSuffix = "Dao";var implementationSuffix = "DaoImpl";var interfaceTypes = assembly.GetTypes().Where(t => t.IsInterface && t.Name.EndsWith(interfaceSuffix)).ToArray();var types = assembly.GetTypes().Where(t => t.IsClass && !t.IsAbstract && t.Name.EndsWith(implementationSuffix)).ToList();foreach (var interfaceType in interfaceTypes){foreach (var type in types){var interfaceName = type.GetInterfaces().FirstOrDefault(i => i.Name == interfaceType.Name)?.Name;if (interfaceName != null){services.AddScoped(interfaceType, type);}}}return services;}
}

一键注入

builder.Services.AddDaosWithConvention(Assembly.GetExecutingAssembly());
http://www.yayakq.cn/news/570089/

相关文章:

  • 不会编程如何做自己的网站重庆响应式网站平台
  • 网站开发组织架构做二手车放在哪个网站好
  • 电子商务网站建设效益分析360应用市场
  • 免费建立网站软件建设网站难吗
  • PHP MYSQL网站开发全程实网站建设维护成本
  • 兴国县城乡规划建设局网站百度打网站名称就显示 如何做
  • 企业网站建设须知长沙做网站开发价格
  • 襄阳文明建设投诉网站搜索引擎优化的英语简称
  • 企业建设网站没有服务器六安网站建设招聘
  • wordpress分类目录导航搜索引擎优化怎么推广
  • wordpress响应 延时seo搜索引擎优化步骤
  • 广州 网站开发 app自己建设网站怎么被百度收入
  • 网站上传文章做p2p网站
  • 新昌品牌网站建设html网页实例
  • 中国建设银行英语网站首页在线做网站流程
  • iis端口相同不同网站建设亚网站建设
  • 推广型网站建设电话广州教育学会网站建设
  • 徐汇集团网站建设优秀的软文广告案例
  • 成都网站建设详细内容现代简约风格装修案例
  • 怎么才能成功做网站如何开展网络推广
  • 网站app客户端制作网站技术部门架构
  • 邹城建设银行网站网站源码上传到哪个文件夹
  • 信用平台网站建设建议赶集的网站怎么做
  • 杭州网站开发外包公司网站访问慢 分析工具
  • 网站建设对数据库有何要求那里做直播网站
  • 专题研究网站建设工作动态seo外贸公司推广
  • 专业制作网站多少钱优化自己的网站
  • 政务网站建设管理系统开发是系统建设中工作任务最为繁重的阶段
  • 我找客户做网站怎么说冠县网站开发
  • 免费建站排名百度官方平台