Странная Ошибка - CS0012: тип x определяется в блоке, на который не ссылаются

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
30
задан Dave Clemmer 13 January 2013 в 19:08
поделиться

5 ответов

Я - коллега Mike's, и мы разработали решение.

тип X определяется в его блоке, который находится только в GAC. Даже при том, что его веб-приложение ASP.NET действительно имело ссылку, ему не удавалось загрузиться от GAC только для этого UserControl. Остальная часть приложения работала как ожидалось. Мы подтвердили неудавшуюся загрузку путем размещения копии блока в каталоге bin, и все работало. Мы удалили блок, и проблема возвратилась.

Наше решение состояло в том, чтобы вручную добавить запись в web.config в разделе блоков для указания на ASP.NET на GAC.

Это похоже на любое время, Вы ссылаетесь на тип на странице (не код - позади), Вам нужна информация о блоке, определенная в web.config файле или в директиве страницы.

<assemblies>
        <add assembly="MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=[MyPublicKeyToken]"/>   
</assemblies>
28
ответ дан Aaron Daniels 28 November 2019 в 00:16
поделиться

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

обходное решение должно удалить все в каталоге C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\, и это только, кажется, проявляется в режиме отладки.

4
ответ дан Sam Beaven 28 November 2019 в 00:16
поделиться

При поиске и устранении неисправностей этих типов проблем Средство просмотра журнала Fusion всегда было большой справкой.

3
ответ дан Maxam 28 November 2019 в 00:16
поделиться

Чаще всего это происходит из-за кэшированных сборок. Одним из способов решения этой проблемы является создание «сильной ссылки» в файле proj или config. См. Этот блог пост

0
ответ дан Michael Eakins 28 November 2019 в 00:16
поделиться

Для меня это была проблема с контролем версий.

В Visual studio откройте «Ссылки» в обозревателе решений и пролистайте его.

Если на чем-то есть желтый предупреждающий треугольник, запомните имя, удалите его и добавьте обратно (или ReSharper сделает это за вас).

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

0
ответ дан Max Izrin 28 November 2019 в 00:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: