Это один из тех плохо документированных аспектов динамической компиляции, которые возникли, когда впервые появились сайты asp.net 2.0.
Фактический ответ на ваш конкретный вопрос, однако, потребует, чтобы вы рассказали нам больше о том, что именно вы пытаетесь сделать с классом из App_Code. Большую часть времени вам не нужно беспокоиться о пространстве имен или имени сборки, чтобы использовать эти классы на своих страницах. Вы просто используете имя класса, и компилятор выяснит это и подключит все для вас.
Самое большое исключение, с которым я столкнулся, это использование веб-элементов управления, которые я поместил в app_code. Для них вам нужна директива @Register на странице aspx ... а для этого вам нужно имя сборки и пространство имен.
Файлы в app_code скомпилированы в сборку с именем "__code" (обратите внимание, что здесь есть ДВА подчеркивания, а не одно). Это то, что вы можете использовать, когда вам нужно имя сборки для директив Register или в файле web.config, или нет.
Но, насколько мне известно, вы не сможете использовать класс в директивах регистра или некоторых настройках web.config, для которых требуется пространство имен, если вы явно не обернули этот класс в блок пространства имен.