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

asp.net core6 webapi 使用反射批量注入接口层和实现接口层的接口的类到ioc中

IBLL接口层类库

namespace IBLL
{public interface ICar{string CarName();}
}
namespace IBLL
{public interface IRed{string RedName();}
}

BLL实现接口层类库

namespace BLL
{public class Car : ICar{public string CarName(){return "BBA";}}
}
namespace BLL
{public class Red : IRed{public string RedName(){return "红色";}}
}

program中利用反射批量注入

 // 获取实现接口的类库的程序集var assembly = Assembly.Load("BLL");//获取定义接口的类库的程序集var assembly1 = Assembly.Load("IBLL");// 获取所有接口类型var interfaceTypes = assembly1.GetTypes().Where(t => t.IsInterface).ToList();// 遍历接口类型foreach (var interfaceType in interfaceTypes){// 获取实现该接口的所有类型var implementationTypes = assembly.GetTypes().Where(t => interfaceType.IsAssignableFrom(t) && !t.IsAbstract).ToList();// 注册实现类型到IoC容器中foreach (var implementationType in implementationTypes){builder.Services.AddTransient(interfaceType, implementationType);}}

在控制器中使用构造函数传参就可以调用已经注册的所有是是实现接口的类了的实列了

public readonly ICar _car;public readonly IRed _red;public WeatherForecastController(IRed red, ICar car){_red = red;_car = car;}[HttpGet]public string car(){return _car.CarName();}[HttpGet]public string red(){return _red.RedName();}

相关文章:

asp.net core6 webapi 使用反射批量注入接口层和实现接口层的接口的类到ioc中

IBLL接口层类库 namespace IBLL {public interface ICar{string CarName();} } namespace IBLL {public interface IRed{string RedName();} }BLL实现接口层类库 namespace BLL {public class Car : ICar{public string CarName(){return "BBA";}} } namespace BLL…...

【2023】字节跳动 10 日心动计划——第九关

目录 1. 螺旋矩阵2. 划分字母区间3. 子集 II 1. 螺旋矩阵 &#x1f517; 原题链接&#xff1a;54. 螺旋矩阵 类似于BFS那样使用方向数组即可。 class Solution { public:vector<int> spiralOrder(vector<vector<int>>& matrix) {int m matrix.size(), …...

小龟带你敲排序之冒泡排序

冒泡排序 一. 定义二.题目三. 思路分析&#xff08;图文结合&#xff09;四. 代码演示 一. 定义 冒泡排序&#xff08;Bubble Sort&#xff0c;台湾译为&#xff1a;泡沫排序或气泡排序&#xff09;是一种简单的排序算法。它重复地走访过要排序的数列&#xff0c;一次比较两个元…...

Nacos AP架构集群搭建(Windows)

手写SpringCloud项目地址&#xff0c;求个star github:https://github.com/huangjianguo2000/spring-cloud-lightweight gitee:https://gitee.com/huangjianguo2000/spring-cloud-lightweigh 目录&#xff1a; 一&#xff1a;初始化MySQL 二&#xff1a;复制粘贴三份Nacos文…...

nodejs+vue+elementui,图书评论管理系统_g9e3a

用户的功能主要是对首页、图书信息、公告信息、在线咨询、个人中心等进行操作。表名&#xff1a;token语言 node.js 框架&#xff1a;Express 前端:Vue.js 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat 开发软件&#xff1a;VScode 前端nodejsvueelementui, 管理员…...

基于TorchViz详解计算图(附代码)

文章目录 0. 前言1. 计算图是什么&#xff1f;2. TorchViz的安装3. 计算图详解 0. 前言 按照国际惯例&#xff0c;首先声明&#xff1a;本文只是我自己学习的理解&#xff0c;虽然参考了他人的宝贵见解&#xff0c;但是内容可能存在不准确的地方。如果发现文中错误&#xff0c;…...

解决GitHub的速度很慢的几种方式

1. GitHub 镜像访问 这里提供两个最常用的镜像地址&#xff1a; https://hub.njuu.cf/search https://www.gitclone.com/gogs/search/clonesearch 也就是说上面的镜像就是一个克隆版的 GitHub&#xff0c;你可以访问上面的镜像网站&#xff0c;网站的内容跟 GitHub 是完整同步…...

设计模式再探——策略模式

目录 一、背景介绍二、思路&方案三、过程1.策略模式简介2.策略模式的类图3.策略模式代码4.策略模式还可以优化的地方5.策略模式的例子改造(配置文件反射) 四、总结五、升华 一、背景介绍 最近在做产品的过程中&#xff0c;对于主题讨论回复内容&#xff0c;按照追评次数排…...

基于Googlenet深度学习网络的人员行为动作识别matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 1. 原理 1.1 深度学习与卷积神经网络&#xff08;CNN&#xff09; 1.2 GoogLeNet 2. 实现过程 2.1 数据预处理 2.2 构建网络模型 2.3 数据输入与训练 2.4 模型评估与调优 3. 应用领域…...

存储过程的学习

1&#xff0c;前言 这是实习期间学习的&#xff0c;我可能是在学校没好好听课&#xff0c;&#xff08;或者就是学校比较垃&#xff0c;没教这部分&#xff0c;在公司经理让我下去自己学习&#xff0c;太难了&#xff0c;因为是公司代码很多部分都是很多表的操作&#…...

zookeeperAPI操作与写数据原理

要执行API操作需要在idea中创建maven项目 &#xff08;改成自己的阿里仓库&#xff09;导入特定依赖 添加日志文件 上边操作做成后就可以进行一些API的实现了 目录 导入maven依赖&#xff1a; 创建日志文件&#xff1a; 创建API客户端&#xff1a; &#xff08;1&#xff09…...

防火墙对双通道协议的处理

防火墙是一种网络安全设备或软件&#xff0c;用于控制网络流量并保护计算机网络免受未经授权的访问、恶意攻击和网络威胁。它作为网络的第一道防线&#xff0c;用于监视、过滤和管理进出网络的数据包。 防火墙可以基于预设的安全策略对网络流量进行评估和筛选。它通过比较数据…...

vscode搭建c语言环境问题

c语言环境搭建参考文章:【C语言初级阶段学习1】使用vscode运行C语言&#xff0c;vscode配置环境超详细过程&#xff08;包括安装vscode和MinGW-W64安装及后续配置使用的详细过程&#xff0c;vscode用户代码片段的使用&#xff09;[考研专用]_QAQshift的博客-CSDN博客 问题如下:…...

全网最全的接口自动化测试教程

为什么要做接口自动化 相对于UI自动化而言&#xff0c;接口自动化具有更大的价值。 为了优化转化路径或者提升用户体验&#xff0c;APP/web界面的按钮控件和布局几乎每个版本都会发生一次变化&#xff0c;导致自动化的代码频繁变更&#xff0c;没有起到减少工作量的效果。 而…...

数据结构----结构--线性结构--链式存储--链表

数据结构----结构–线性结构–链式存储–链表 1.链表的特点 空间可以不连续&#xff0c;长度不固定&#xff0c;相对于数组灵活自由 搜索&#xff1a; 时间复杂度O(n) 增删: 头增头删时间复杂度O(1) 其他时间复杂度为O(n) 扩展&#xff1a;单向循环链表的特性 从任意节…...

【5G 核心网】5G 多PDU会话锚点技术介绍

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…...

K8s环境下监控告警平台搭建及配置

Promethues是可以单机搭建的&#xff0c;参考prometheus入门[1] 本文是就PromethuesGrafana在K8s环境下的搭建及配置 Prometheus度量指标监控平台简介 启动minikube minikube start 安装helm 使用Helm Chart 安装 Prometheus Operator: helm install prometheus-operator stabl…...

微信小程序在使用vant组件库时构建npm报错

在跟着vant官方进行使用步骤一步步操作时&#xff0c;由于要构建NPM&#xff0c;但NPM包在App配置文件的外部 所以在做下图这一步时&#xff1a; 接着再进行npm构建时会报错 message:发生错误 Error: F:\前端学习\前端框架\小程序\project\demo\miniprogram解决方法 &#xf…...

Django实现音乐网站 ⑽

使用Python Django框架制作一个音乐网站&#xff0c; 本篇主要是后台对歌曲类型、歌单功能原有功能进行部分功能实现和显示优化。 目录 歌曲类型功能优化 新增编辑 优化输入项标题显示 父类型显示改为下拉菜单 列表显示 父类型显示名称 过滤器增加父类型 歌单表功能优化…...

SpringMVC的架构有什么优势?——异常处理与文件上传(五)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…...

忙得上天入地的导师派师姐助我毕设之救我狗命笔记(一)

开源模型探索实践-环境配置与参数修改一、环境配置按照 README 说明进行基础配置。在终端中依次执行以下命令&#xff1a;bashconda create -n aqatrack python3.8 conda activate aqatrack bash install.sh⚠️ 注意&#xff1a;Windows 系统执行最后一行会报错&#xff0c;此…...

深入解析ALSA音频架构中的snd_pcm_open函数实现机制

1. ALSA音频架构与snd_pcm_open函数概览 ALSA&#xff08;Advanced Linux Sound Architecture&#xff09;作为Linux系统中最主流的音频驱动框架&#xff0c;其核心设计思想是通过分层架构实现硬件无关性。在这个体系中&#xff0c;snd_pcm_open函数扮演着音频设备初始化的第一…...

保姆级避坑指南:在Proxmox VE 8.4上给Windows 11虚拟机直通NVIDIA 2080 Ti显卡

保姆级避坑指南&#xff1a;在Proxmox VE 8.4上给Windows 11虚拟机直通NVIDIA 2080 Ti显卡 虚拟化技术正逐渐从企业级应用渗透到个人用户领域&#xff0c;尤其是对于需要高性能图形处理的场景。Proxmox VE作为一款开源的虚拟化平台&#xff0c;配合NVIDIA消费级显卡&#xff0c…...

AI Agent求职被拒最常见的原因是什么

这些实际上更像工程问题&#xff0c;公司愿意给30k月薪的原因就在这里&#xff0c;Agent开发不是玩具技术人&#xff0c;是能把玩具变成生产力的人。这环节最直接有效的方法就是跟着项目完整走一遍&#xff0c;如果你无从下手&#xff0c;趁着有大佬带队&#xff0c;你直接跟着…...

ConvNeXt 系列改进:ConvNeXt 添加 MetaFormer 风格池化层,简化 Block 并保持性能

2026 年的计算机视觉领域呈现出一种有趣的“返璞归真”趋势——在 Vision Transformer 狂飙数年之后,卷积神经网络正以全新的姿态强势回归。根据 Meta AI 近年来发布的官方论文数据,ConvNeXt 已经证明了一个关键事实:不需要 Attention 机制,纯 CNN 依然可以达到甚至超越同级…...

百川2-13B-4bits量化大模型多场景落地:教育机构智能助教、IT团队代码协作者

百川2-13B-4bits量化大模型多场景落地&#xff1a;教育机构智能助教、IT团队代码协作者 1. 引言&#xff1a;当大模型走进日常&#xff0c;它能做什么&#xff1f; 如果你是一家教育机构的老师&#xff0c;每天要备课、答疑、批改作业&#xff0c;还要处理各种行政事务&#…...

知识图谱网站案例综述

当人们第一次接触“知识图谱网站”时&#xff0c;往往容易把重点放在“图”上&#xff0c;仿佛只要网页上出现节点、连线或关系网络图&#xff0c;就已经完成了知识图谱应用。实际上&#xff0c;这种理解过于表面。知识图谱的核心&#xff0c;不在于是否画出了一张图&#xff0…...

从一次内部渗透测试看低代码平台安全:Jeecg-Boot JimuReport漏洞的攻防思考

从红队视角拆解低代码平台安全&#xff1a;Jeecg-Boot JimuReport漏洞攻防全景 低代码平台正在重塑企业数字化建设的效率边界&#xff0c;但安全团队往往在"敏捷交付"的狂欢中后知后觉。去年某金融客户的内部红蓝对抗中&#xff0c;攻击方仅用36分钟就通过Jeecg-Boot…...

51单片机+ADC0808数字电压表:从C语言到汇编,手把手教你用Proteus仿真(附完整汇编源码)

51单片机与ADC0808数字电压表&#xff1a;从C语言到汇编的实战迁移指南 在嵌入式开发领域&#xff0c;51单片机因其经典架构和广泛的应用基础&#xff0c;一直是工程师入门的首选平台。当我们从C语言这种高级语言过渡到汇编语言时&#xff0c;不仅能够更深入地理解硬件工作原理…...

鲁班猫MIPI屏幕配置与触摸校准全攻略:从1080P切换到横屏显示的完整流程

1. 鲁班猫开发板与MIPI屏幕初体验 第一次拿到鲁班猫开发板时&#xff0c;我像大多数嵌入式开发者一样兴奋。这块基于RK3566芯片的小板子虽然体积不大&#xff0c;但性能足够强大&#xff0c;特别适合用来做各种嵌入式项目。不过当我准备连接MIPI屏幕时&#xff0c;发现默认配置…...