gpt4 book ai didi

c# - 无法向 .NET Core 中的 IConfiguration 添加扩展方法(但在其他类上工作)

转载 作者:行者123 更新时间:2023-11-30 12:38:00 25 4
gpt4 key购买 nike

我已将以下扩展方法添加到我的项目中。

public static class Extensions
{
public static T Get<T>(this IConfiguration self, string path)
{
IConfigurationSection section = self.GetSection(path);
T output = section.Get<T>();

return output;
}
}

出于某种原因,它似乎无法在智能感知中通过,并且编译器提醒说字符串不能作为第二个参数传递。谷歌搜索验证了扩展方法确实适用于接口(interface),唯一的要求是签名不同,因为它们不能覆盖。

You can use extension methods to extend a class or interface, but not to override them. An extension method with the same name and signature as an interface or class method will never be called.

在我看来,它们确实不同,因为原始版本的传入参数与我的字符串版本不同。

public static T Get<T>(this IConfiguration self, string x) { ... }
public static T Get<T>(this IConfiguration self, Action<BinderOptions> x) { ... }

扩展到另一个类似乎也有效 as described at MSDN .

我错过了什么?

最佳答案

我可以确认VS2019无法识别已经导入的带有签名的扩展方法。

您应该能够通过使用包含类的命名空间来使用扩展方法。

using <yourextensionmethodnamespace>;

然后这样调用它

configuration.Get<WhateverType>("key");

关于c# - 无法向 .NET Core 中的 IConfiguration 添加扩展方法(但在其他类上工作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57203026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com