c# - 如何使用 2x 参数正确调用 .NET logger.LogError 方法?

标签 c# .net

我正在尝试调用此 logger.LogError 方法,但不断调用错误的扩展方法。

我有:

_logger.LogError("This is an error {someBool} and {someString}", someBool, someString);

它正在调用这个扩展方法:

enter image description here

但我想改为调用此扩展方法:

enter image description here

我如何最终调用特定的扩展方法?

更新:

按照下面的建议,按 F12 转到代码...就是这个(之后继续阅读...有一个问题!)

enter image description here

所以起初该命名空间看起来是官方的..

直到我注意到它是 ASSEMBLY 的一部分和东西..并且它都是来自另一个开发人员的私有(private) nuget 包(对于该公司)中的自定义类。厚颜无耻!!!!

所以是的 - 这都是自定义扩展方法。

我认为它是官方 MS 代码的一部分。我道歉。

最佳答案

如果您不喜欢自动解析,您始终可以强制编译器使用其中一个函数所需的确切类型:

_logger.LogError("This is an error {someBool} and {someString}", 
                 new object[] { someBool, someString });

也就是说,我从来没有遇到过这个问题,请检查这个方法来自哪里以及为什么选择它而不是您喜欢的方法。

由于您想要的方法来自未定义其他方法的类,因此您也可以直接调用它,而无需扩展方法语法:

LoggerExtensions.LogError(
       _logger,
       "This is an error {someBool} and {someString}", 
       someBool, 
       someString);

这应该排除那些与您想要的冲突的其他方法。

关于c# - 如何使用 2x 参数正确调用 .NET logger.LogError 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74862486/

相关文章:

c# - 具有空对象的 Linq-to-Sql 表达式抛出 NPE

.net - F# 处理从数据库返回的空记录

c# - "Interface name is not valid at this point"

.net - 如何在不缩放线宽的情况下缩放路径几何以适合 View 框?

c# - 使用 Type.GetMethod(string name, Type[] types) 的意外行为

c# - VB.NET WithEvents 关键字行为 - VB.NET 编译器限制?

.net - 如何告诉 Roslyn C# 编译器使用特定版本的 .NET?

c# - .net core 2.0 在 ubuntu 上运行控制台应用程序时出错

c# - 编辑其他用户的注册表项

c# - 使用 c# 捕获 COM 错误