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

网站建设网络推广图片刷赞抖音推广网站

网站建设网络推广图片,刷赞抖音推广网站,日记类型 wordpress,网站建设颜色搭配.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.wooajung.com/news/31163.html

相关文章:

  • excel做网站页面布局浙江企业网站建设
  • 做设计的搜素材上什么网站长沙网站seo哪家公司好
  • 网站建设学习步骤汕头企业网络推广
  • 中牟建设局网站百度指数网址
  • 做b2b企业外贸网站百度竞价开户流程
  • 南通seo网站推广费用seo月薪
  • 慈利网站开发网站推广公司电话
  • 做网站美工收费微信搜索seo优化
  • 网站开发设计知乎谷歌网站优化推广
  • 公司网站要备案吗百度官方网平台
  • 网站做公安部备案需要测评吗今日最近的新闻大事10条
  • wordpress交易系统温州seo排名优化
  • java网站开发是干什么seo服务商
  • 如何做自己的网站后台新东方烹饪学校学费价目表
  • 企业网络管理软件抖音seo公司
  • 庐江网站建设搜狗推广
  • 呼和浩特网站建设费用seo网站诊断分析报告
  • 建设网站是主营成本吗店铺推广软文范例
  • 渭南最新防疫信息seo北京优化
  • 公司网站建设文章关键词排名 收录 查询
  • app设计总结杭州关键词优化测试
  • 建站之星官网 discuz百度seo插件
  • 廊坊网站建设佛山厂商网店搜索引擎优化的方法
  • 江苏屹峰建设网站网站优化什么意思
  • 网站开发建设国内最开放的浏览器
  • 平台型网站建设方案网站收录量是什么意思
  • 网站标题flashchatgpt入口
  • 较便宜的网站建设广州营销优化
  • 做影视网站能赚到钱吗百度客服24小时人工电话
  • 科技特长生seo厂商