【问题标题】:utilising user secrets in .net 5 console app在 .net 5 控制台应用程序中利用用户机密
【发布时间】:2021-06-07 10:05:42
【问题描述】:

我正在构建一个简单的控制台应用程序来处理大型 CSV 文件。 SDK 版本为5.0.202,我在 Manjaro Linux 上。

代码

using System;
using System.Text;
using TinyCsvParser;
using System.Linq;
using Microsoft.Extensions.Hosting;

namespace DrawsParser
{
    class Program
    {
        static void Main(string[] args)
        {
          var host = new HostBuilder()
            .ConfigureAppConfiguration((hostContext, builder) =>
            {
                if (hostContext.HostingEnvironment.IsDevelopment())
                {
                    builder.AddUserSecrets<Program>();
                }
            })
            .Build();

            host.Run();

            CsvParserOptions options = new CsvParserOptions(true, ',');
            CsvDrawResultMapping mapping = new CsvDrawResultMapping();
            CsvParser<DrawResult> parser = new CsvParser<DrawResult>(options, mapping);

            var results = parser
              .ReadFromFile(@"subset_game_data.csv", Encoding.UTF8)
              .ToList();

            foreach (var result in results)
            {
              var item = result.Result;
              string text = $"{item.Date.ToString()} | {item.State} | {item.Game} | {item.OriginalResult}";
              Console.WriteLine(text);
            }
        }
    }
}

包裹

DrawsParser on  feature/reading-csv-file [!?] •NET v5.0.202 ???? net5.0 ❯ dotnet list package
Project 'DrawsParser' has the following package references
   [net5.0]:
   Top-level Package                                     Requested   Resolved
   > Microsoft.Extensions.Configuration                  5.0.0       5.0.0
   > Microsoft.Extensions.Configuration.UserSecrets      5.0.0       5.0.0
   > Microsoft.Extensions.Hosting                        5.0.0       5.0.0
   > TinyCsvParser                                       2.6.0       2.6.0

当我运行dotnet build . 时出现以下错误:

/home/ryan/work/will/parser/DrawsParser/Program.cs(18,29):错误 CS1061:“IConfigurationBuilder”不包含“AddUserSecrets”的定义,并且没有可访问的扩展方法“AddUserSecrets”接受可以找到“IConfigurationBuilder”类型的第一个参数(您是否缺少 using 指令或程序集引用?) [/home/ryan/work/will/parser/DrawsParser/DrawsParser.csproj]

我不确定我错过了什么,我实际上正在关注official docs here

【问题讨论】:

  • 我认为你错过了using Microsoft.Extensions.Configuration
  • 谢谢@MindSwipe,你是对的。作为一个刚起步的人,我怎样才能发现我需要那个 using 声明?错误消息甚至没有暗示这一点。
  • 我通过复制您的错误消息搜索了网络并立即发现了该问题。我发现了这个 - stackoverflow.com/questions/43255160/…
  • 编译器怎么知道?您可以在其他库中拥有自己的自定义代码来执行相同的实现
  • 嗯,错误信息是are you missing a using directive or an assembly reference?,所以我不会说The error message doesn't even hint at that

标签: c# .net-core .net-5


【解决方案1】:

谷歌搜索C# IConfigurationBuilder.AddUserSecrets 导致this 文档页面,该页面显示AddUserSecret 扩展方法是在Microsoft.Extensions.Configuration 命名空间中定义的,并检查您的代码是否缺少using Microsoft.Extensions.Configuration; 指令

【讨论】:

  • 非常感谢,下次我会按照搜索提示进行操作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多