This is the craziest what I've seen since a Fody plugin ruined my assembly by emitting invalid code and control flow varied random at runtime... No Fody this time.
Facts:
The error message (see the pic) lists two identical method specification
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
If I change both the call, both the method definition (only 2 edits in 2 places) to GetMessage2, then I got exactly the same error message just referring to the GetMessage2.
Any ideas?
and here is the single one method:
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;
}
}
}
Make sure you don't reference the output binary in your project references (i.e., the project references itself). This has happened to me in the past with Resharper (the addition of the output binary to the project references), so the extension method is both in the source and in the binary reference.
Delete bin folder > open project > build solution.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With