двусмысленная ссылка - PullRequest
       11

двусмысленная ссылка

18 голосов
/ 16 марта 2011

Я удалил проект в своем решении, а затем снова добавил его. С тех пор как я его прочитал ... У меня ошибка ambiguous reference, которую я не могу удалить. просматривая реализацию класса (который получает ошибку), я вижу, что он ссылается на него дважды:

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

пространство имен просматривается только один раз, но эта проблема существует только в 1 частичном просмотре.

EDIT:

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

MyViewModel выдает неоднозначную ошибку, если я просматриваю все доступные классы, в которых отображаются дубликаты, такие как:

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

но когда я открываю другое частичное представление в том же проекте, это нормально. Это всего лишь 1 часть, которая, кажется, сохраняет повторяющуюся ссылку.

Есть идеи, как мне решить эту проблему?

Ответы [ 7 ]

45 голосов
/ 16 марта 2011

Вы пытались щелкнуть правой кнопкой мыши по решению и выполнить Clean Solution?

4 голосов
/ 16 марта 2011

Похоже, ваш проект имеет две разные ссылки на одну и ту же сборку.

Избавься от одного из них.

1 голос
/ 14 ноября 2013

Вы пытались выключить его (Visual Studio) и снова включить?У меня это сработало ...

1 голос
/ 06 декабря 2012

Я получил это как ошибочное сообщение об ошибке, и мой проект все еще строился и работал нормально в течение нескольких месяцев. Это было потому, что кто-то поместил класс в пространство имен с различной капитализацией для всех других экземпляров этого пространства имен, поэтому они фактически были двумя разными пространствами имен. Наш код был технически правильным, но директива ASPX <%@ Register %> жаловалась на то, что он был неоднозначным, потому что было два разных символа с «одинаковым» именем; MyNamespace и Mynamespace.

Проверьте вашу заглавную букву.

0 голосов
/ 01 мая 2017

Это также может произойти, если у вас есть ссылки двух разных версий. Если вы ссылаетесь на сборку в своем проблемном проекте, а также ссылаетесь на другой проект, имеющий ту же ссылку, но другую версию, то двусмысленно, какую ссылку использовать.

0 голосов
/ 17 июля 2014

Возможно, в вашем проекте была ссылка на сборку в вашем решении, а также в классе проекта есть оператор using для пространства имен в указанной сборке.

Удалить ссылку на сборку между проектами, если они принадлежат одному решению.

0 голосов
/ 16 марта 2011

Вы получаете эту ошибку, потому что у вас есть два класса с тем же именем и тем же пространством имен. Вы должны изменить пространство имен одного из классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...