这是我见过的最疯狂的事情,因为Fody插件通过发出无效代码来破坏我的程序集并且控制流在运行时随机变化......这次没有Fody.
事实:
错误消息(参见图片)列出了两个相同的方法规范
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的完全相同的错误消息.
有任何想法吗?
这是单一的方法:
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
Jcl*_*Jcl 14
确保您没有在项目引用中引用输出二进制文件(即项目引用自身).在过去,Resharper(将输出二进制文件添加到项目引用)中发生了这种情况,因此扩展方法既可以在源代码中也可以在二进制引用中.
| 归档时间: |
|
| 查看次数: |
10339 次 |
| 最近记录: |