ChatGPT解决这个技术问题 Extra ChatGPT

IConfiguration 不包含 GetValue 的定义

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

我该如何解决?


P
Pang

只需安装 Microsoft.Extensions.Configuration.Binder 即可使用该方法。

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


J
Jordan Ryder

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

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

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