Creé un sitio web en ASP.NET y creé una clase y la puse dentro de la carpeta App_Code. Sin embargo, no puedo acceder a esto desde mis otras páginas. ¿Es necesario configurar algo para permitir esto? Lo hice funcionar en proyectos anteriores, pero no en este, de alguna manera.
namespace CLIck10.App_Code
{
public static class Glob
{
...
}
}
Respuestas:
Haga clic derecho en el
.cs
archivo en laApp_Code
carpeta y verifique sus propiedades.Asegúrese de que la "Acción de compilación" esté configurada en "Compilar".
fuente
Ponga esto en la parte superior de los otros archivos donde desea acceder a la clase:
O acceda a la clase desde otros archivos como este:
No estoy seguro de si ese es su problema o no, pero si era nuevo en C #, entonces es fácil tropezar con esto.
Actualización: Recientemente descubrí que si agrego una carpeta App_Code a un proyecto, entonces debo cerrar / volver a abrir Visual Studio para que reconozca correctamente esta carpeta "especial".
fuente
Vaya a la página desde la que desea acceder a la clase App_code y luego agregue el espacio de nombres de la clase app_code. Debe proporcionar una
using
declaración, de la siguiente manera:Después de eso, deberá ir a la propiedad de la clase app_code y establecer la 'Acción de compilación' en 'Compilar'.
fuente
asegúrese de estar usando el mismo espacio de nombres que sus páginas
fuente
Todavía no he descubierto por qué ocurre esto, pero tenía clases que estaban en mi
App_Code
carpeta que llamaban métodos entre sí, y lo hice bien cuando construí un proyecto .NET 4.5.2, pero luego tuve que revertirlo a 4.0 ya que el servidor de destino no se estaba actualizando. Fue entonces cuando encontré este problema (después de arreglar ellangversion
en mi web.config de 6 a 5 ... otra historia) ...Uno de mis métodos seguía teniendo un error como:
Todas mis clases ya estaban configuradas para "Compilar" en sus propiedades, como se sugiere en la respuesta aceptada aquí, y cada una tenía un espacio de nombres común que era el mismo, y cada uno tenía
using MyNamespace;
la parte superior de cada clase.Descubrí que si solo movía las clases ofensivas que tenían que llamar métodos entre sí a otra carpeta estándar llamada algo diferente a "App_Code", dejaban de tener este problema de conflicto.
Nota : Si crea una carpeta estándar llamada "AppCode", mueva sus clases a ella, elimine la carpeta "App_Code", luego cambie el nombre de "AppCode" a "App_Code", sus problemas volverán. No importa si utiliza la opción "Nueva carpeta" o "Agregar carpeta ASP .NET" para crear "App_Code", parece que debe ingresar el nombre.
Tal vez esto sea solo un problema de .NET 4.0 (y posiblemente anterior) ... ¡Estaba bien en 4.5.2 antes de tener que volver!
fuente
Me resultó más fácil mover los archivos a un proyecto separado de la Biblioteca de clases y luego hacer referencia a ese proyecto en el proyecto web y aplicar el espacio de nombres en la
using
sección del archivo. Por alguna razón, las otras soluciones no me funcionaban, pero este trabajo sí lo hizo.fuente
En mi caso, no pude obtener un proyecto para construir con clases definidas en la carpeta App_Code.
No puedo replicar el escenario precisamente para comentar, pero tuve que cerrar y volver a abrir el estudio visual para que intellisense cooperara de acuerdo ...
Me di cuenta de que cuando una clase en la carpeta App_Code se configura en 'Compilar' en lugar de 'Contenido' (haga clic con el botón derecho) que los errores provenían de una segunda versión de la clase ... Mire a la izquierda de la parte 3 de los 3 campos entre el panel de código y la pestaña. El 'otro' se llamaba algo similar a 10_App_Code o similar.
Para rectificar el problema, cambié el nombre de la carpeta de App_Code a Code, establecí explícitamente espacios de nombres en las clases y configuré todas las clases en 'Compilar'
fuente