Я создал веб-сайт в ASP.NET, создал класс и поместил его в папку App_Code. Однако я не могу получить доступ к этому с других моих страниц. Что-то должно быть настроено, чтобы позволить это? Я заставил это работать в предыдущих проектах, но не в этом, так или иначе.
namespace CLIck10.App_Code
{
public static class Glob
{
...
}
}
Ответы:
Щелкните правой кнопкой мыши
.cs
файл вApp_Code
папке и проверьте его свойства.Убедитесь, что «Build Action» установлен на «Compile».
источник
Поместите это вверху других файлов, где вы хотите получить доступ к классу:
ИЛИ получить доступ к классу из других файлов, например:
Не уверен, если это ваша проблема или нет, но если вы были новичком в C #, то это легко подойти.
Обновление: недавно я обнаружил, что если я добавляю папку App_Code в проект, то я должен закрыть / снова открыть Visual Studio, чтобы он правильно распознал эту «специальную» папку.
источник
Перейдите на страницу, откуда вы хотите получить доступ к классу App_code, а затем добавьте пространство имен класса app_code. Вам необходимо предоставить следующее
using
заявление:После этого вам нужно будет перейти к свойству класса app_code и установить для параметра «Build Action» значение «Compile».
источник
убедитесь, что вы используете то же пространство имен, что и ваши страницы
источник
Я еще не выяснил, почему это происходит, но у меня были классы, которые были в моей
App_Code
папке, которые вызывали методы друг у друга, и у меня все получалось, когда я создавал проект .NET 4.5.2, но потом мне пришлось верните его на 4.0, поскольку целевой сервер не обновлялся. Вот когда я обнаружил эту проблему (после исправленияlangversion
в моем web.config от 6 до 5 ... другая история) ....Один из моих методов продолжал иметь ошибку как:
Все мои классы уже были настроены на «Compile» в своих свойствах, как указано в принятом здесь ответе, и у каждого было общее пространство имен, которое было одинаковым, и каждый имел
using MyNamespace;
в верхней части каждого класса.Я обнаружил, что если я просто переместил классы-нарушители, которые должны вызывать методы друг в друге, в стандартную папку с именем, отличным от «App_Code», у них перестал возникать этот конфликт.
Примечание . Если вы создадите стандартную папку с именем «AppCode», переместите в нее ваши классы, удалите папку «App_Code», а затем переименуйте «AppCode» в «App_Code», ваши проблемы вернутся. Неважно, используете ли вы опцию «Новая папка» или «Добавить папку ASP .NET» для создания «App_Code» - кажется, что вы вводите имя.
Может быть, это просто проблема .NET 4.0 (и, возможно, раньше) ... Я был в порядке в 4.5.2, прежде чем вернуться!
источник
Я обнаружил, что проще переместить файлы в отдельный проект библиотеки классов, а затем сослаться на этот проект в веб-проекте и применить пространство имен в
using
разделе файла. По некоторым причинам другие решения не работали для меня, но это обошло стороной.источник
В моем случае я не смог получить проект для сборки с классами, определенными в папке App_Code.
Не могу точно воспроизвести сценарий, чтобы прокомментировать, но пришлось закрыть и снова открыть визуальную студию для интеллигенции, чтобы сотрудничать, согласитесь ...
Я заметил, что когда для класса в папке App_Code установлено значение «Компилировать» вместо «Содержимое» (щелкните его правой кнопкой мыши), ошибки возникали во второй версии класса ... Посмотрите на крайнюю левую часть 3 из 3 полей между панелью кода и вкладкой. «Другой» назывался чем-то вроде 10_App_Code или подобным.
Чтобы устранить эту проблему, я переименовал папку из App_Code в Code, явно установил пространства имен для классов и установил для всех классов значение «Compile».
источник