无法在控制台应用程序 .NET Core 中使用 IOptions

2023-12-28

我有一个控制台应用程序,我正在其中构建配置

IConfiguration config = new ConfigurationBuilder()
   .AddJsonFile("appsettings.json", true, true)
   .Build();

var services = new ServiceCollection();
services.AddOptions();
services.Configure<ResourceConfiguration>(config.GetSection("ResourceConfiguration"));

这不起作用

  Error CS1503: Argument 2: cannot convert from 'Microsoft.Extensions.Configuration.IConfigurationSection' to 'System.Action<ResourceConfiguration>' (29, 55)

我的使用中有以下内容(以及我自己的命名空间)

使用 Microsoft.Extensions.Configuration; 使用 Microsoft.Extensions.DependencyInjection; 使用系统; 使用系统.IO;

IConfiguration config = new ConfigurationBuilder()
   .AddJsonFile("appsettings.json", true, true)
   .Build();

返回 IConfigurationRoot 这可能是问题所在?

我究竟做错了什么?

这是.NET Core 3.1

Paul


我使用 .NET 6 创建了一个控制台应用程序来帮助您。

检查下面的代码并让我们知道它是否有效。 =)

应用程序设置.json

{
    "SETUP_OPTIONS": 
    {
        "MyProperty": 100,
        "MyProperty2": "Success!"
    }
}

所需用途

using Microsoft.Extensions.Options;
using System.Threading.Tasks;
using System.IO;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;

设置选项类

public class SetupOptions
{
    public const string ConfigKey = "SETUP_OPTIONS";

    public int MyProperty { get; set; }
    public string MyProperty2 { get; set; }
}

程序.cs

static async Task Main(string[] args)
{
    IConfiguration configuration = new ConfigurationBuilder()
        .SetBasePath(currentDirectory)
        .AddJsonFile("appsettings.json", optional: false)
        .Build();

    var serviceCollection = new ServiceCollection();
    ConfigureServices(serviceCollection, configuration);

    var serviceProvider = serviceCollection.BuildServiceProvider();

    await serviceProvider.GetService<MyAppClass>().RunAsync(args);
}

private static void ConfigureServices(ServiceCollection serviceCollection, IConfiguration configuration)
{
    // AppSettings IOptions configuration
    serviceCollection.AddOptions<SetupOptions>().Bind(configuration.GetSection(SetupOptions.ConfigKey));

    serviceCollection.AddTransient<MyAppClass>();
}

MyAppClass.cs

public class MyAppClass
{
    private readonly SetupOptions _setupOptions;

    // Inject IOptions in your constructor
    public MyAppClass(IOptions<SetupOptions> setupOptions)
    {
        _setupOptions = setupOptions?.Value;
    }

    public async Task RunAsync(string[] args)
    {
        // Use your Setup Options value loaded from appsettings file.
        var myPropertyValue = _setupOptions.MyProperty;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在控制台应用程序 .NET Core 中使用 IOptions 的相关文章

  • 将处理后的图形绘制到另一个图形中

    我想将一个经过处理的图形绘制到另一个图形中 I have two graphics var gHead Graphics FromImage h var gBackground Graphics FromImage b Transform
  • MEX 文件中的断言导致 Matlab 崩溃

    我正在使用mxAssert 宏定义为matrix h在我的 C 代码中 mex 可以完美编译 当我调用的 mex 代码中违反断言时 该断言不会导致我的程序崩溃 而是导致 Matlab 本身崩溃 我错过了什么吗 这是有意的行为吗 当我查看 M
  • 添加对共享类的多个 WCF 服务的服务引用

    我正在尝试将我的 WCF Web 服务拆分为几个服务 而不是一个巨大的服务 但是 Visual Studio Silverlight 客户端 复制了两个服务共享的公共类 这是一个简单的例子来说明我的问题 在此示例中 有两个服务 两者都返回类
  • 获取两个字符串之间的公共部分c# [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要的是获取两个单词之间的共同部分并获取差异 例子 场景1 word1 感言 word2 Test 将返回 公共部分Test 不同之
  • 处理 fanart.tv Web 服务响应 JSON 和 C#

    我正在尝试使用 fanart tv Webservice API 但有几个问题 我正在使用 Json Net Newtonsoft Json 并通过其他 Web 服务将 JSON 响应直接反序列化为 C 对象 这里的问题是元素名称正在更改
  • 使用实体框架从集合中删除项目

    我正在使用DDD 我有一个 Product 类 它是一个聚合根 public class Product IAggregateRoot public virtual ICollection
  • ASP .NET MVC,创建类似路由配置的永久链接

    我需要帮助在 MVC 网站中创建类似 URL 路由的永久链接 Slug 已设置为 www xyz com profile slug 代码为 routes MapRoute name Profile url profile slug defa
  • TextBox 焦点的 WinForms 事件?

    我想添加一个偶数TextBox当它有焦点时 我知道我可以用一个简单的方法来做到这一点textbox1 Focus并检查布尔值 但我不想那样做 我想这样做 this tGID Focus new System EventHandler thi
  • 调试内存不足异常

    在修复我制作的小型 ASP NET C Web 应用程序的错误时 我遇到了 OutOfMemoryException 没有关于在哪里查看的提示 因为这是一个编译时错误 如何诊断此异常 我假设这正是内存分析发挥作用的地方 有小费吗 Thank
  • 在 C# 中将位从 ulong 复制到 long

    所以看来 NET 性能计数器类型 http msdn microsoft com en us library system diagnostics performancecounter aspx有一个恼人的问题 它暴露了long对于计数器
  • 是否有与 C++11 emplace/emplace_back 函数类似的 C# 函数?

    从 C 11 开始 可以写类似的东西 include
  • 禁用 LINQ 上下文的所有延迟加载或强制预先加载

    我有一个文档生成器 目前包含约 200 个项目的查询 但完成后可能会超过 500 个 我最近注意到一些映射表示延迟加载 这给文档生成器带来了一个问题 因为它需要根据生成的文档来访问所有这些属性 虽然我知道DataLoadOptions可以指
  • 事件日志写入错误

    很简单 我想向事件日志写入一些内容 protected override void OnStop TODO Add code here to perform any tear down necessary to stop your serv
  • 如何在 BenchmarkDotNet 中使用 DependencyInjection?

    我想在我现在正在使用的一些遗留代码上使用 BenchmarkDotNet 它是用 C Net462 编写的 这是一个庞大 古老且复杂的系统 我想对某些特定类中的一些方法进行基准测试 这些类使用依赖注入 我不确定如何做到这一点 到目前为止我看
  • C# 创建数组的数组

    我正在尝试创建一个将使用重复数据的数组数组 如下所示 int list1 new int 4 1 2 3 4 int list2 new int 4 5 6 7 8 int list3 new int 4 1 3 2 1 int list4
  • 在 C 中复制两个相邻字节的最快方法是什么?

    好吧 让我们从最明显的解决方案开始 memcpy Ptr const char a b 2 调用库函数的开销相当大 编译器有时不会优化它 我不会依赖编译器优化 但即使 GCC 很聪明 如果我将程序移植到带有垃圾编译器的更奇特的平台上 我也不
  • UWP 无法在两个应用程序之间创建本地主机连接

    我正在尝试在两个 UWP 应用程序之间设置 TCP 连接 当服务器和客户端在同一个应用程序中运行时 它可以正常工作 但是 当我将服务器部分移动到一个应用程序并将客户端部分移动到另一个应用程序时 ConnectAsync 会引发异常 服务器未
  • 为什么我使用google'smtp'无法发送电子邮件?

    我有以下程序使用 smtp gmail com 587 发送电子邮件 namespace TestMailServer class Program static void Main string args MailMessage mail
  • 如何确定母版页中正在显示哪个子页?

    我正在母版页上编写代码 我需要知道正在显示哪个子 内容 页面 我怎样才能以编程方式做到这一点 我用这个 string pageName this ContentPlaceHolder1 Page GetType FullName 它以 AS
  • 如何使用 std::array 模拟 C 数组初始化“int arr[] = { e1, e2, e3, ... }”行为?

    注意 这个问题是关于不必指定元素数量并且仍然允许直接初始化嵌套类型 这个问题 https stackoverflow com questions 6111565 now that we have stdarray what uses are

随机推荐

  • JavaScript 压缩

    我正在寻找可以压缩JavaScript源代码的工具 我发现一些网络工具只能删除空格字符 但也许存在更好的工具 可以压缩用户的函数名称 字段名称 删除未使用的字段等 经常用来压缩 JS 代码的工具是YUI压缩器 http developer
  • LESS/SASS CSS 与缩小/优化相反?

    我想知道我可以说 LESS SASS CSS 预处理器 我认为他们被称为 与缩小等优化相反 我想知道是否会对性能产生明显的影响 或者您认为易于开发更重要 我问这个是因为 LESS CSS 生成的是类似的东西 body div1 div2 p
  • 使用 SimpleXML 的 XML 声明标签

    我开始使用带有注释的简单 XML 框架 link http simple sourceforge net download stream doc tutorial tutorial php namesoace 对于 Java 但我不明白如何
  • matplotlib 图例位置编号

    我开始使用 Python 进行科学计算 而且我真的很喜欢它 但是我对 matplotlib pylab legend 函数的一个功能感到困惑 特别是 位置功能允许人们使用数字指定图例的位置 遵循以下方案 最好 0 右上角 1 左上 2 左下
  • 如何将对象字符串解析为javascript对象? [复制]

    这个问题在这里已经有答案了 我从数据库得到这个字符串 from 15 00 to 16 00 from 16 00 to 17 00 from 17 00 to 18 00 from 18 00 to 19 00 它是一个字符串 在这种情况
  • 在多个显示器上居中用户表单

    我在网上搜索了一段时间 确实找到了一些解决方案 但似乎没有一个对我有帮助 我在 Excel 2010 中有一个用户窗体 我想将其置于 Excel 窗口的中心 我有双显示器 它似乎总是在两个显示器之间居中 我知道您可以编辑一些属性 例如 St
  • Objective-C 中如何改变鼠标光标

    我正在制作一个图像编辑应用程序 但如果没有像 Photoshop 中的画笔那样的光标 它看起来非常不完整 如何设置图标 并在退出应用程序时将其更改回来 这是我的头文件中的代码 以防万一需要 interface test NSWindow
  • PHP:涉及爆炸键的映射数组[重复]

    这个问题在这里已经有答案了 在尝试使用多个 foreach 循环解决此问题后 我仍然不知道如何映射 arr to arr mapped 我需要爆炸钥匙 arr获取最多具有三个要创建的新键的元素 arr mapped
  • 通过两个模型来查看[重复]

    这个问题在这里已经有答案了 我是 mvc 新手 并尝试通过用它做一个小项目来学习它 我有一个页面应该显示特定日期的货币和天气 所以我应该通过货币模型和天气模型 我已经完成了通过货币模型并且工作正常 但我不知道如何通过第二个模型 大多数教程都
  • 为什么 python MSAL 身份验证卡在 ConfidentialClientApplication 处?

    我有这段 python 代码 它在我的计算机上完美运行 但当我在带有 Amazon Linux 的 EC2 上运行它时 它会卡在这个函数中 检查了所有网络和防火墙规则 一切正常 事实上 如果我从我的 PC 获取令牌并尝试通过 cURL 直接
  • 如何使用 prometheus Alertmanager 在工作时间之外抑制警报?

    我们的应用程序依赖于仅在工作时间内活跃的数据源 我们在普罗米修斯中设置了警报 以便在溪流干涸时通知我们 但是 我们不希望在工作时间之外收到 错误 警报 我跟着这个帖子 https medium com tom fawcett time of
  • 如何限制日志记录频率?

    任何日志库是否包含限制日志消息频率的方法 我的意思是假设我有一个等待循环并且它记录 没有完成 如何使下一条 未完成 消息仅在 1 秒后记录 我知道我可以自己编程 大多数日志记录库都支持过滤器来限制日志记录频率 请参阅此答案SLF4J 或 L
  • 如何使用 highcharts 将图表图像保存到服务器上?

    With highcharts you have a built in button to download the current chart example http www highcharts com demo http www h
  • 我可以更新 ProgressDialog 的字符串消息吗?

    我在 Android AsyncTak 中设置了一个进度对话框并且它可以工作 我的问题是可以在 AsyncTask 的 onProgressUpdate 方法中更新 ProgressDialog 显示的字符串 我想使用publishProg
  • wkhtmltopdf 自定义字体字母间距

    I m running wkhtmltopdf on linux server centos 10 x86 64 I m trying to add Times New Roman font to the page I see the fo
  • Vim 颜色太亮(终端)

    我的 Vim 和 iTerm2 有问题 颜色太亮 对于所有主题 它适用于 Terminal app 和 MacVim 所以我想这一定是我完全错过了 iTerm2 中的某些设置 The picture below shows you the
  • Dropzone 无法以编程方式在 div 内工作

    我遇到了 dropzone 问题 我试图将其包含在 div 中 但不起作用 起初我的js上没有 div dropzone 东西 并且没有出现错误 但是上传部分无法正常工作 这是因为我从未表明 dropzone 类位于 div 内 当我添加时
  • Elastic Search 地理空间搜索实现

    我试图了解 elasticsearch 如何在内部支持地理空间搜索 对于基本搜索 它使用倒排索引 但它如何与附加搜索条件 例如搜索特定半径内的特定文本 结合起来 我想了解如何存储和查询索引以支持这些查询的内部结构 文本查询和地理查询是分开执
  • gradle构建过程中的CSS Sprite生成?

    我最近读了一篇关于 Javascript 的文章 其中提到了像 Grunt 和 Ender 这样的构建工具 简要指出 此类工具能够从单独提供的文件生成精灵图像 并且这些构建工具可以集成到构建过程中 不幸的是我的谷歌搜索没有透露更多这方面的信
  • 无法在控制台应用程序 .NET Core 中使用 IOptions

    我有一个控制台应用程序 我正在其中构建配置 IConfiguration config new ConfigurationBuilder AddJsonFile appsettings json true true Build var se