.net core 2 API 中是否真正需要 services.AddSingleton

2023-11-26

我只需添加以下内容即可在 .NET Core 2 Web API 控制器中访问 appsettings.json:

public class MyController : Controller
    {
        private readonly IConfiguration appConfig;

        public MyController(IConfiguration configuration)
        {
            appConfig = configuration;
        }
    }

无需在 Startup 类中添加以下内容配置服务(IServiceCollection 服务)在 services.AddMvc(); 之后:

services.AddSingleton<IConfiguration>(Configuration);

我的方法有什么缺陷吗?在 .Net Core 2 配置部分的官方文档中,甚至没有提到使用“AddSingleton”一次:https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration

同样通过搜索我找不到与访问配置相关的内容!

下面的链接显示AddSingleton 如同强制步骤:

访问控制器类中的 appsettings.json 值

https://blogs.technet.microsoft.com/dariuszporowski/tip-of-the-week-how-to-access-configuration-from-controller-in-asp-net-core-2-0/


As the ASP.NET Core 2.0 官方路线图 says:

An IConfiguration在 ASP.NET Core 2.0 中,实例会默认添加到 services 容器中,以便所有应用程序都可以轻松地通过容器检索配置值

So services.AddSingleton<IConfiguration>(或类似的)已经被框架本身调用。

你可能会在里面看到这种行为WebHostBuilder.cs文件或(当使用实用程序扩展方法时)里面HostBuilder.cs file.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.net core 2 API 中是否真正需要 services.AddSingleton 的相关文章

  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • 将多个表映射到实体框架中的单个实体类

    我正在开发一个旧数据库 该数据库有 2 个具有 1 1 关系的表 目前 我为每个定义的表定义了一种类型 1Test 1Result 我想将这些特定的表合并到一个类中 当前的类型如下所示 public class Result public
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定

随机推荐

  • 如何在express router中使用body-parser?

    我有一个具有对象的 post api 但我无法在控制台中打印它的抛出未定义我以为我缺少主体解析器 但在添加主体解析器后我看到错误body parser deprecated bodyParser use individual json ur
  • 当 SQL 数据库添加新行而不进行轮询时,C# Azure 函数触发

    有没有一种方法可以在每次将新数据库行添加到 SQL azure 数据库时调用 Azure 函数 理想情况下没有任何基于计时器的轮询 我知道这可以在 blob 存储上完成 但没有找到在 Azure 函数上执行此操作的方法 提前致谢 Funct
  • 未命名命名空间访问规则

    我正在查看部分7 3 1 1在 C 03 标准中 期望找到未命名命名空间中定义的项的访问规则的一些描述 对于未命名的命名空间 规则似乎有点不同 因为您无法完全限定对其中的项目的访问权限 我知道至少在同一个翻译单元中 人们可以访问未命名名称空
  • 无法在带有 glassfish 服务器的 ubuntu 上使用 intelliJ 在调试模式下运行 Web 应用程序

    在 ubuntu 12 04 上的 intelliJ 12 0 和 glassfish 3 1 2 2 中 我尝试在调试模式下启动我的 Web 应用程序 但收到以下错误消息 Error starting domain domain1 The
  • 在 Ruby/Rails 中读取远程 MP3 文件的 ID3 标签?

    使用 Ruby 如何解析远程 mp3 文件的 ID3 标签而不将整个文件下载到磁盘 这个问题已经被问到Java and 银光 但没有红宝石 Edit 查看 Java 答案 似乎可以 HTTP 支持 仅下载文件的尾部 即标签所在的位置 这可以
  • Apache Camel MDC 从 Body 添加字段

    我正在使用 apache Camel 并希望使用 MDC 将某些键添加到我的日志中 我通过官方Camel MDC 日志记录文档这非常棒 我可以毫不费力地记录我的routeId 我还需要添加来自骆驼身体的字段 最坏的情况是我可以在所有路由中手
  • @ViewScoped 托管 bean 在回发期间加载多次

    我在 jsf Facelet 上有一个日历 编辑器 文件上传和 dataTable primefaces 控件 代码如下
  • Android中如何获取文件的绝对路径?

    btnimport setOnClickListener new View OnClickListener Override public void onClick View v Intent fileintent new Intent I
  • 如何在android中的每个标记(多个标记)上打开信息窗口?

    由于我使用的是 Google 地图 v2 并且我想打开多个制造商的信息窗口 我已经使用单个标记完成了此操作 并且还使用了 show info window 但它适用于最后一个标记并且仅适用于一个 我只想要安卓 public class Ma
  • SocketIOException:客户端中出现意外的握手错误

    以下异常 SocketIOException Unexpected handshake error in client OS Error errno 12268 0 SecureFilterImpl handshake dart io pa
  • OData V4 + WebAPI 按枚举的 Int 值过滤?

    OData V4 有枚举支持 但似乎您必须仅按命名空间进行搜索 现在如何通过值而不是文本表示进行搜索 在 odata V3 中 您可以查询 filter Status eq 35 where 35 is Complete在枚举中 即使该字段
  • PostgreSQL 中的混合隔离级别

    如果任何其他会话使用例如可串行化事务 这是否重要 自动提交还是 READ COMMITED 隔离级别 换句话说 当从多个进程 线程 或其他需要注意的事项 访问数据库时 混合隔离级别 和自动提交 是否存在任何危险 请注意 我知道 普通 问题
  • 在 Node.js 上通过 XMPP 连接到 Google Talk

    我尝试过对 Node js 使用各种 XMPP 库 但在连接到 Google Talk 的 XMPP 服务器时遇到问题 我想联系并查看朋友的状态 但我什至无法出门 我有一个通过 Google Apps for Domains 托管的个人域
  • 如何在已 root 的设备上使用文件资源管理器?

    Eclipse 已连接到我已 root 的手机 我可以运行调试会话并查看 LogCat 消息 我还可以看到电话Devices查看在DDMS观点 但是 当我打开File Explorer视图 以相同的视角 我明白了nothing 我可以发誓我
  • 使用 ruby​​ mechanize 捕获超时错误

    我有一个机械化功能可以让我退出网站 但在极少数情况下我会超时 该功能涉及转到特定页面 然后单击注销按钮 有时 当进入注销页面或单击注销按钮时 机械化会遇到超时 代码会崩溃 所以我做了一个小小的救援 它似乎正在工作 如第一段代码所示 def
  • 为什么我的查询不可更新?

    我正在尝试在 Access 中为用户构建可更新的视图 基本上 基础表如下所示 Accounts accountId accountName accountHolder TransactionStatements statementId ac
  • Thread.Sleep(0) 不按描述工作?

    我目前正在阅读这篇优秀的文章关于线程并阅读以下文本 Thread Sleep 0 立即放弃线程当前的时间片 自愿将CPU交给其他线程 我想测试一下 下面是我的测试代码 static string s static void Main str
  • SQL:如何将 Oracle 表中的 100,000 条记录拆分为 5 个块?

    我试图找出将具有 100 万条以上记录的表中的前 100 000 条记录拆分为 5 五 20 000 条记录块以放入文件中的方法 也许某些 SQL 会获取 20 000 条记录的每 5 个块的最小和最大 rowid 或主 id 因此我可以将
  • 自动生成的默认连接字符串与手动添加的连接字符串

    假设我有一个简单的 WPF 应用程序 使用 Entity Framework Code First 创建数据库 连接到它并显示一些数据 从一开始我就不想担心连接字符串 因此在通过 Nuget 添加实体框架引用后 我将获得自动生成的 app
  • .net core 2 API 中是否真正需要 services.AddSingleton

    我只需添加以下内容即可在 NET Core 2 Web API 控制器中访问 appsettings json public class MyController Controller private readonly IConfigura