【发布时间】:2021-09-03 06:48:36
【问题描述】:
这是我见过的最疯狂的事情,因为 Fody 插件通过发出无效代码破坏了我的程序集,并且控制流在运行时随机变化......这次没有 Fody。
事实:
- 整个故事都在一个项目中。
- GetMessage 扩展方法已存在数周...
- 问题从 2 小时开始出现,我无法弄清楚它是什么。
- GetMessage 扩展方法只有一种。
-
错误信息(见图)列出了两个相同的方法规范
Error CS0121 The call is ambiguous between the following methods or properties: 'ComiCalc.Data.ExceptionExtensions.GetMessage2(System.Exception)' and 'ComiCalc.Data.ExceptionExtensions.GetMessage2(System.Exception)' ComiCalc.Data D:\2014Develop\.vsonline\ComiCalc\src\ComiCalc.Data\Services\UserService.cs 61 如果我将两个调用、方法定义(仅在 2 个地方的 2 个编辑)都更改为 GetMessage2,那么我得到的错误消息与 GetMessage2 完全相同。
- 使用 VS 2015
有什么想法吗?
这是唯一一种方法:
namespace ComiCalc.Data
{
using System;
using System.Data.Entity.Validation;
using PluralTouch.DataAccess;
// TODO: Move to PluralTouch
public static class ExceptionExtensions
{
public static string GetMessage2(this Exception exception)
{
var message = exception.Message;
if (exception is DbEntityValidationException)
{
message = ((DbEntityValidationException) exception).DbEntityValidationResultToString();
}
return message;
}
}
}
【问题讨论】:
-
你为什么要发布代码截图?请在其中获取实际代码。
-
这是一个网络应用程序吗?
-
@Jashaszun:如果你关心阅读这个问题,你会认识到这个问题不是关于代码,而是关于 IDE 和/或编译器。我花了 1 多个小时来弄清楚发生了什么,并花了 15 分钟以上来描述我所经历的一切,并且屏幕截图可以为您提供我所看到的最接近的体验。无论如何,感谢那些点击而不阅读的人的 3 个缺点
-
@g.pickardou 如果您要展示的东西用图像更好地展示(例如构建设置),那么屏幕截图就可以了。然而,代码和错误消息总是通过文本更好地传达。
-
再一次:查看正确答案:它证明我的问题在其初始版本中有所有诊断信息来诊断正在发生的事情,而该问题与代码无关跨度>
标签: c#