这是自从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
如果我更改调用的两个地方,同时将方法定义更改为GetMessage2(只需在2个位置进行2个编辑),然后我会得到完全相同的错误消息,只是引用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;
}
}
}