首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >动态IoC控制器解析ASP.NET 5

动态IoC控制器解析ASP.NET 5
EN

Stack Overflow用户
提问于 2015-12-10 11:46:15
回答 1查看 860关注 0票数 2

我正在尝试制作一个类似Mvc的路由系统,用户在其中创建类/控制器,HTTP请求被路由到他们。我有所有的基本知识,它在很大程度上是通过使用反射来工作的。

当我尝试IoC/依赖项注入/服务解决程序时,问题就会发生。我希望人们能够通过在构造函数中声明他们需要的内容并将它们添加到IoC容器中来创建一个注入服务的控制器(就像mvc一样)。我能够传递/使用System.IServiceProvider调用我需要的控制器类型上的GetService(类型)。但是,除非我特别将控制器类型添加到IoC容器中,否则这是行不通的。我们不需要在Mvc中为IoC注册控制器,所以我确信有一个解决办法。

我尝试过使用反射来查找正在运行的程序集/应用程序域中的所有'ControllerBase‘子类,并在启动时将它们添加到IServiceProvider/IServiceCollection中?但是,迁移到ASP.NET 5/Dnx核心5似乎改变了应用程序域和程序集的工作方式或访问方式。任何指导如何自动完成这一点,而不需要用户注册每个控制器将是伟大的。另外,任何关于mvc如何做到这一点的信息也将是很棒的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-10 14:49:58

使用依赖项注入创建对象实例的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void ConfigureServices(IServiceCollection services)
{
    HomeController controller;

    var controllerFactory = Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateFactory(typeof(HomeController), Type.EmptyTypes);
    controller = (HomeController)controllerFactory(services.BuildServiceProvider(), null);
}

对于创建类型,MVC使用实例DefaultTypeActivatorCache。它使用静态对象ActivatorUtilities

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34210451

复制
相关文章
【数据库报错(未删除任何行,未更新任何行)】
首先查看定义的表格数据类型有无问题,点击表格编辑前100行 如何更改编辑行数:更改编辑行数 这里的允许NULL值为通过输入端输入后,写进数据库是否包含空值 例如,输入端通过注册输入注册名后,若允许NULL值未勾选,则写进表格的为用户名+数据类型除了用户名所占字节剩余用空格进行填充(写入表格中的数据为用户名+若干空格) 若允许NULL值勾选了,则写进表格的即为刚刚进行注册的用户名,其后没有多余空格
magize
2023/07/11
3810
【数据库报错(未删除任何行,未更新任何行)】
获取jqGrid中选择的行的数据
var id=$(‘#gridTable’).jqGrid(‘getGridParam’,'selrow’);
ydymz
2018/09/10
2.5K0
[MySQL] mysql 的行级显式锁定和悲观锁
隐式和显式锁定: 1.innodb是两阶段锁定协议,隐式锁定比如在事务的执行过程中.会进行锁定,锁只有在commit或rollback的时候,才会同时被释放 2.特定的语句进行显式锁定 select ... lock in share mode ; select ... for update,where条件里面的必须是主键,否则会锁整张表 3.需要用在事务中使用,并且两个查询都需要for update才能阻塞住另一个去读,也就是实现写锁,阻塞别的读锁,悲观排他的目的 4.如果不想开启事务,就把autocommit关掉,这样默认就是开启事务了,每次都要commit才行
唯一Chat
2019/09/10
1.2K0
[MySQL] mysql 的行级显式锁定和悲观锁
MySQL SQL更新锁定
版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处。
Leshami
2018/12/19
2.5K0
SQL"已更新或者删除的行值要么不能使该行成为唯一行,要么改变了多个行(X行)“解决办法
  这种问题大多是由于没有主键(PK)导致同一张表中存在若干条相同的数据。DBMS存储时,只为其存储一条数据,因为DBMS底层做了优化,以减少数据冗余。所以删除或更新一条重复数据就牵一发而动全身。
孙晨c
2019/09/10
3.6K0
SQL"已更新或者删除的行值要么不能使该行成为唯一行,要么改变了多个行(X行)“解决办法
css选择器选择奇数行或偶数行
:nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型。
蓓蕾心晴
2022/12/06
2.4K0
MySQL的行转列
所谓的行转列操作,就是将一个表的行信息转化为列信息,说着可能比较笼统,这里先举个例子,如下:
AsiaYe
2019/11/06
13.2K0
Python-科学计算-pandas-11-df获取特定行或者列
系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2 pandas:0.19.2
zishendianxia
2020/06/16
2.1K0
mysql行转列
目录 1 mysql行转列 1 mysql行转列 SELECT t.shsexssjhylydm ,count( 1 ) count FROM ( select REGEXP_SUBSTR(SHSEXSSJHYLYDM, '[^,]+', 1, L) AS SHSEXSSJHYLYDM,shsexsbh from TB_YW_SHSEXS_XS xs, (SELECT LEVEL L FROM DUAL CONNECT BY LEVEL <= 1000) WHERE L(+)
一写代码就开心
2022/05/27
3.2K0
SQL 获取纯数值的行
在 MySQL 库中有个 mix 表,它有一个列叫作 v,该列存储了文本和纯数值的内容。部分数据如下:
白日梦想家
2020/11/26
1.6K0
mysql行转列简单例子_mysql行转列、列转行示例[通俗易懂]
最近在开发过程中遇到问题,需要将数据库中一张表信息进行行转列操作,再将每列(即每个字段)作为与其他表进行联表查询的字段进行显示。
全栈程序员站长
2022/07/01
4.8K0
mysql行转列简单例子_mysql行转列、列转行示例[通俗易懂]
mysql行转列转换
sql 脚本 -- 创建表 学生表 CREATE TABLE `student` ( `stuid` VARCHAR(16) NOT NULL COMMENT '学号', `stunm` VARCHAR(20) NOT NULL COMMENT '学生姓名', PRIMARY KEY (`stuid`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB; -- 课程表 CREATE TABLE `courses` ( `cours
皇上得了花柳病
2020/05/04
2K0
Mysql行级锁
锁是计算机协调多个进程或纯线程并发访问某一资源的机制. 在mysql中更是用处多多, 今天就一起看下mysql中的行级锁. 它主要包括行锁, 间隙锁, 临键锁三种. 首先我们先了解几个基础概念.
一个架构师
2022/06/27
3.3K0
Mysql行级锁
【MySQL】InnoDB行格式
首先明确在 innodb 引擎中数据是以页为基本单位读取的,而一个页中又包含多个行数据,那么对应地就会有不同的行格式来存储数据,innodb 中的行格式有四种:compact、redundant、dynamic、compressed。redundant 是 5.0 之前用的行格式,这里就不记录了。
玛卡bug卡
2022/12/18
1.6K0
【MySQL】InnoDB行格式
Mysql 行转列 + json
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137507.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/05
2.3K0
一行代码获取股票、基金数据,并绘制K线图
大家好,我是老表,今天这篇文章和大家分享一下如何利用Python获取股票、基金数据,并进行可视化,为金融分析&可视化先导篇。
老表
2022/10/31
1.5K0
一行代码获取股票、基金数据,并绘制K线图
mysql行转列函数_mysql行转列,函数GROUP_CONCAT(expr)
SELECT id, product_name FROM `product` WHERE id < 5
全栈程序员站长
2022/08/23
3.1K0
mysql行转列函数_mysql行转列,函数GROUP_CONCAT(expr)
MySQL原理 - InnoDB引擎 - 行记录存储 - Compact 行格式
MySQL 服务器上负责对表中数据的读取和写入工作的部分是存储引擎,比如 InnoDB、MyISAM、Memory 等等,不同的存储引擎一般是由不同的人为实现不同的特性而开发的,目前OLTP业务的表如果是使用 MySQL 一般都会使用 InnoDB 引擎,这也是默认的表引擎。
干货满满张哈希
2021/04/12
1.3K0
MySQL原理 - InnoDB引擎 - 行记录存储 - Compact 行格式
MySQL原理 - InnoDB引擎 - 行记录存储 - Redundant行格式
在上一篇:MySQL原理 - InnoDB引擎 - 行记录存储 - Compact格式 中,我们介绍了什么是 InnoDB 行记录存储以及 Compact 行格式,在这一篇中,我们继续介绍其他三种行格式。
干货满满张哈希
2021/04/12
6540
MySQL原理 - InnoDB引擎 - 行记录存储 - Redundant行格式
MySQL行锁的最佳实践
行锁就是针对数据表中行记录的锁。事务A更新了一行,而这时候事务B也要更新同一行,须等事务A操作完成后才能更新。
JavaEdge
2022/11/30
1.6K0

相似问题

只选择未锁定的行mysql

46

是否选择行并更新相同的行以进行锁定?

21

选择并锁定一行,然后更新

31

MySQL行锁定和更新

12

mysql -更新时锁定行

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文