C’est la chose la plus folle que je connaisse depuis qu’un plugin Fody a ruiné mon assemblage en émettant un code non valide et un stream de contrôle varié de manière aléatoire à l’exécution … Aucun Fody cette fois.
Faits:
Le message d’erreur (voir l’image) répertorie deux spécification de méthode identique
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
Si je modifie à la fois l’appel et la définition de la méthode (seulement 2 modifications à 2 endroits) en GetMessage2, le message d’erreur que je viens de citer se réfère exactement à GetMessage2.
Des idées?
et voici la seule méthode:
namespace ComiCalc.Data { using System; using System.Data.Entity.Validation; using PluralTouch.DataAccess; // TODO: Move to PluralTouch public static class ExceptionExtensions { public static ssortingng GetMessage2(this Exception exception) { var message = exception.Message; if (exception is DbEntityValidationException) { message = ((DbEntityValidationException) exception).DbEntityValidationResultToSsortingng(); } return message; } } }
Assurez-vous de ne pas référencer le binary de sortie dans vos références de projet (c’est-à-dire, les références de projet elles-mêmes). Cela m’est arrivé dans le passé avec Resharper (l’ajout du binary de sortie aux références du projet), de sorte que la méthode d’extension est à la fois dans le source et dans la référence binary.
Supprimer le dossier bin> ouvrir le projet> construire la solution.
J’ai créé un nouveau projet et déplacé tous les fichiers sauf «bin», «références», «obj» et boom. Cela fonctionne comme un charme ..