référence ambiguë

J’ai supprimé un projet dans ma solution, puis plus tard, je l’ai ajouté de nouveau. Depuis que je l’ai lu …, je reçois maintenant une erreur de ambiguous reference que je ne peux pas supprimer. en visualisant l’implémentation de la classe (qui obtient l’erreur), je vois qu’elle la référence deux fois:

 > ClassName (myclass.Class) myclass.Class > ClassName (myclass.Class) myclass.Class, Version=1.0.0.0 

l’espace de nom n’est vu qu’une seule fois, mais ce problème n’existe que dans une vue partielle.

MODIFIER:

 <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 

MyViewModel génère une erreur ambiguë. Si je visualise toutes les classes disponibles, il affiche les doublons tels que:

 MyClass.Class.MyViewModel MyClass.Class.MyViewModel MyClass.Class.MyOtherViewModel MyClass.Class.MyOtherViewModel 

mais quand j’ouvre une autre vue partielle dans le même projet, tout va bien. Ce n’est que le 1 partiel qui semble conserver la référence dupliquée.

Une idée de comment je peux résoudre ça?

Avez-vous essayé de cliquer avec le bouton droit sur la solution et de faire une Clean Solution ?

Il semble que votre projet comporte deux références différentes au même assemblage.

Débarrassez-vous de l’un d’eux.

Je recevais cela comme un message d’erreur erroné, et mon projet était toujours construit et fonctionnait bien pendant des mois. C’était parce que quelqu’un avait placé une classe dans un espace de noms avec une capitalisation différente de toutes les autres instances de cet espace de noms, de sorte qu’il s’agissait en réalité de deux espaces de noms différents. Notre code était techniquement correct, mais la directive ASPX <%@ Register %> plaignait de son ambiguïté car il y avait deux symboles différents portant le “même” nom; MyNamespace et Mynamespace .

Vérifiez votre capitalisation.

Avez-vous essayé de l’activer (Visual Studio) et de le réactiver? Cela a fonctionné pour moi …

Votre projet avait probablement un lien vers un assembly dans votre solution et votre classe de projet a également une instruction using pour l’espace de noms dans l’assembly référencé.

Supprimer le lien vers un assemblage entre des projets s’ils appartiennent à une solution.

Cela peut aussi arriver si vous avez référencé deux versions différentes. Si vous faites référence à un assemblage dans votre projet problématique et à un autre projet qui a la même référence mais une version différente, la référence à utiliser est ambiguë.

Vous obtenez cette erreur parce que vous avez deux classes avec le même nom et le même espace de noms. Vous devriez changer l’espace de noms d’une des classes.