【问题标题】:IConfiguration does not contain a definition for GetValueIConfiguration 不包含 GetValue 的定义
【发布时间】:2019-07-13 01:02:50
【问题描述】:

通过项目移动课程后,IConfiguration 方法之一,GetValue<T>,停止工作。用法是这样的:

using Newtonsoft.Json;
using System;
using System.Net;
using System.Text;
using Microsoft.Extensions.Configuration;

namespace Company.Project.Services
{
    public class MyService
    {
        private readonly IConfiguration _configuration;

        public string BaseUri => _configuration.GetValue<string>("ApiSettings:ApiName:Uri") + "/";

        public MyService(
            IConfiguration configuration
        )
        {
            _configuration = configuration;
        }
    }
}

我该如何解决?

【问题讨论】:

    标签: c# asp.net configuration asp.net-core-2.2


    【解决方案1】:

    只要安装Microsoft.Extensions.Configuration.Binder,方法就可以了。

    原因是GetValue&lt;T&gt;是一个extension method,并不直接存在于IConfiguration接口中。

    【讨论】:

      【解决方案2】:

      最佳答案在这里是最合适的。然而,另一种选择是通过传入键来获取字符串形式的值。

      public string BaseUri => _configuration["ApiSettings:ApiName:Uri"] + "/";
      

      【讨论】:

      • 这并没有回答问题,因为它专门询问如何修复该方法。虽然这是初始方法的一个很好的替代方案,但谢谢。
      • 嘿乔丹。只是想感谢你发布这个。即使您的回复可能不会直接回答问题,但它确实提供了一个不错的选择。我从谷歌来到这里,我现在正在考虑你检索设置的方式。因此,我认为您的回答是对该主题的宝贵补充。谢谢队友:)
      • 这个版本的优点是它需要的依赖少。所以它是我对控制台应用程序等简单事物的默认选择。
      • 是的,我实际上认为这种方法比我最初的方法更好。 ? 请注意 .NET 版本和兼容性。
      猜你喜欢
      • 2015-10-11
      • 2021-08-03
      • 2023-03-05
      • 2020-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多