IConfiguration 不包含 GetValue 的定义

IConfiguration does not contain a definition for GetValue

在项目中移动 class 后,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;
        }
    }
}

我该如何解决?

只需安装Microsoft.Extensions.Configuration.Binder即可使用

原因是GetValue<T>是一个extension method,并不直接存在于IConfiguration界面中。

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

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