使用 ASP.NET 5 中的默认 DI 容器一次性注册所有服务,类似于 Autofac

2024-03-17

对于 ASP.NET 5,已经默认提供了一个 DI,它看起来很有趣。我一直在使用 Autofac 和 MVC 5,它可以选择一次注册所有程序集。下面是在 Autofac 中注册所有以“Service”结尾的类的示例代码。

// Autofac Configuration for API
var builder = new ContainerBuilder();

builder.RegisterModule(new ServiceModule());

...
...

builder.RegisterAssemblyTypes(Assembly.Load("IMS.Service"))
                      .Where(t => t.Name.EndsWith("Service"))
                      .AsImplementedInterfaces()
                      .InstancePerLifetimeScope();

我的问题是,asp.net 5 的默认 DI 容器中是否有类似的东西,您可以在其中一次注册所有服务?


我的问题是,asp.net 5 的默认 DI 容器中是否有类似的东西,您可以在其中一次注册所有服务?

不是 OOTB,而是 Kristian Hellang 创建了一个很酷的包,名为Scrutor https://github.com/khellang/Scrutor这为内置容器添加了程序集扫描功能。您可以在以下位置找到它:NuGet.org https://www.nuget.org/packages/Scrutor.

services.Scan(scan => scan
    .FromAssemblyOf<ITransientService>()
        .AddClasses(classes => classes.AssignableTo<ITransientService>())
            .AsImplementedInterfaces()
            .WithTransientLifetime()
        .AddClasses(classes => classes.AssignableTo<IScopedService>())
            .As<IScopedService>()
            .WithScopedLifetime());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ASP.NET 5 中的默认 DI 容器一次性注册所有服务,类似于 Autofac 的相关文章

随机推荐

  • Swift - 在 NSArray 中插入对象/项目/添加对象/项目

    我有这个代码 var NToDel NSArray var addInNToDelArray Test1 Test2 如何添加addInNToDelArray in NToDel NSArray 你不能 NSArray是一个不可变数组 因此
  • 如何等待多个期货?

    假设我有几个 future 并且需要等到either其中任何一个都失败了or他们都成功了 例如 假设有 3 个期货 f1 f2 f3 If f1成功并且f2失败我不等待f3 并返回failure给客户 If f2失败同时f1 and f3仍
  • Ruby on Rails 中的社交媒体共享按钮

    我正在尝试在 Ruby on Rails 的博客应用程序中添加自定义社交媒体共享按钮 对我来说重要的是 将显示一个用于共享 帖子 的弹出窗口 这意味着我想包含 Javascript 不幸的是这段代码不起作用 a a
  • 向旋转矩形添加“假”抗锯齿

    我正在使用 Corona SDK 它最近禁用了抗锯齿功能 并且无法重新启用它 我有几个使用旋转矩形和线条的应用程序 并且想要一种不看起来锯齿状的方法 此图显示了差异 有没有办法在 Corona 中为这些矩形添加某种抗锯齿功能 我更喜欢抗锯齿
  • @IntDef 注释和从其他无法注释的代码返回值或如何暂时禁用注释影响代码?

    我在用IntDef https developer android com reference android support annotation IntDef html from Android 支持注解 https sites goo
  • Kendo Asp.net MVC 网格批处理模式计算列显示不更新

    在 Ajax 批处理模式下使用 Kendo Asp net MVC 网格 具有三列 数量 费率 总计 需要实现对变化的实时计算 编写以下函数来更新数据 function grid change e if e action itemchang
  • 在 MVC 架构中公开 Java 组件(例如 JButton)的最佳方式是什么?

    我目前正在用 Java 编写一个 Blackjack 应用程序 它需要用 MVC 架构编写 我的所有模型 视图和控制器都已完全编码 一切都运行良好 但是 我想知道将侦听器附加到组件的最佳方法是什么 例如 JButton 我当前的设计将视图中
  • 狮子滚动条颜色

    Lion 中的滚动条似乎基于 HTML 背景颜色 较浅的颜色 BG 黑色滚动条 较深的 BG 白色 我遇到的问题是 我认为 关于页脚的常见技巧 我通常将 HTML 元素的背景颜色设置为页脚的颜色 这样 如果页面比浏览器窗口短 页脚似乎会继续
  • 我无法导入任何 python 模块,也无法使用 pip 安装任何模块

    当我尝试导入使用 pip3 安装的任何模块时 系统只会向我发送大量文本 很抱歉我无法指定更好的内容 但我对 python 和 ubuntu 很陌生 我尝试了命令 pip3 list 然后我得到这个 usr lib python3 dist
  • 在 PyMongo 中查找子字符串

    我想使用 PyMongo 在 MongoDB 中的字段中查找子字符串 以下查询工作正常 并且是我所需要的 db collection find Animal cat Dog i 但是 如果我尝试传递该值 cat Dog i作为 Python
  • PyCharm 在带有大数据的 iPython 控制台中长时间挂起

    我看过一些报告 PyCharm 很慢 但我遇到了一个问题 即使与正常操作相比 它似乎也太慢了 我在 pandas 数据框中有大量数据 从 440 MB 的 csv 文件读取 当我在 PyCharm 中使用 ipython 控制台时 每次我尝
  • 在Android中升级数据库的正确方法是什么

    如果我想保留一些旧数据并迁移到新版本的数据库 onUpgrade方法中的正确步骤是什么 保留旧数据 删除旧表 创建新表并插入旧数据 有没有简化版本或者有更好的方法 谢谢 升级数据库 在表中添加新字段 在 onUpgrade 中执行以下步骤
  • Mysql 安装程序显示错误:无法写入内存

    我正在尝试安装 MySql Workbench 并下载mysql 安装程序 web community 5 7 13 0 msi 当我运行此文件时 出现以下错误 0x6d4424ff 处的指令引用了 0x6d4424ff 处的内存 内存无法
  • GoPro:获取每帧时间戳

    我目前正在尝试从使用 GoPro 录制的 MPEG 4 文件中提取每个帧时间戳 我想要相机捕获该帧的确切时间 以便稍后将其与计算机视觉算法结合起来 我知道输出帧率为 25 fps 我使用 ffmpeg 和 ffprobe 以不同的方式提取了
  • 用按钮和JS水平滚动隐藏的overflow-x

    我正在尝试使用右侧 左侧的按钮在具有多个 a 标签的 div 中水平滚动 因此我无法使用相同的按钮滚动到 hashtag 我想做的正是与不同标签的 Google 图片搜索标题一样 prsc overflow x hidden overflo
  • Knockout.js 与多个 Select2 绑定

    我的问题是 当我将 Select2 与 Multiple 和 Knockout 视图模型绑定时 选择其中一个选项后 第二次数据丢失 淘汰码 window load function ko bindingHandlers select2 in
  • 使用 MySQL 在 Android 应用程序中存储和显示表情符号

    我有一个应用程序通过套接字与 NodeJS 服务器通信 该服务器通过 HTTP 与 PHP 通信 并且 PHP 正在使用 MySQL 当我尝试在文本字段中插入表情符号并将其保存到数据库时 当我取回它时 我看到 如果我从维基百科复制表情符号
  • 如何生成阳性预测值 (PPV) 与各种分类截止点的关系图?

    我生成了一些分数来帮助预测某些内容是 是 1 还是 否 0 假设数据包括 scores c 10 20 response c 0 0 1 0 1 0 1 1 0 1 1 mydata data frame scores response 我
  • 用 python 绘制 - 折线图取消选择所有

    我得到了一个折线图 其中有多条线代表不同频率的正弦波 我想看一下特定的波浪 而其余的都不在图表中 我知道我可以在图例中单击我不想看到的线条 这样它们就会消失 我想知道是否有一种交互式方式可以一次单击取消选择所有行 而不是单击每一行 My c
  • 使用 ASP.NET 5 中的默认 DI 容器一次性注册所有服务,类似于 Autofac

    对于 ASP NET 5 已经默认提供了一个 DI 它看起来很有趣 我一直在使用 Autofac 和 MVC 5 它可以选择一次注册所有程序集 下面是在 Autofac 中注册所有以 Service 结尾的类的示例代码 Autofac Co