странная ошибка компилятора C #: циклическое наследование - PullRequest
1 голос
/ 03 марта 2009

Несколько дней назад я столкнулся со следующей ошибкой в ​​одном из наших приложений на C # здесь, на работе. Вот как выглядит сообщение об ошибке:

«Унаследованный интерфейс» ... ResourceManager.ResourcesManager »вызывает цикл в иерархии интерфейса« ... ResourceManager.IResourcesManagerView »в D: ... \ Common \ ResourceManager \ IResourcesManagerView.cs"

Это всегда происходит на моей машине, но на сборочной машине есть вероятность 50-50, что сборка будет успешной. Мой класс ResourceManager реализует интерфейс IResourcesManagerView, который также реализует несколько интерфейсов, один из которых является универсальным интерфейсом с именем IInitializable. Я нашел следующий обходной путь: объявить фиктивный интерфейс IDummy, реализующий IInitializable.

Но это не имеет никакого смысла для меня. Кто-нибудь сталкивался с этой проблемой? Я использую Windows XP, Visual Studio 2005.

Ответы [ 3 ]

1 голос
/ 03 марта 2009

Вы, вероятно, ссылаетесь на одну и ту же, но другую версию сборки, содержащую интерфейс. Убедитесь, что вы ссылаетесь на общие сборки из того же места.

1 голос
/ 03 марта 2009

1) Добавьте диаграмму классов для визуализации проблемы. Что-то подсказывает мне, что вы не используете его сейчас.

2) Минимизируйте проблему до того, что вы можете опубликовать. Но вы, вероятно, найдете это сами по пути.

Наилучшее предположение: пахнет, как будто есть 2 версии IInitializable или, может быть, IResourcesManagerView.

0 голосов
/ 12 мая 2016

Я получаю ту же ошибку компиляции, исправляю (вроде) и формализую ее здесь . Но это может быть проблемой, отличной от вашей.

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