2009-07-21 25 views
7

ASP.NET tiene una función que le permite declarar espacios de nombres usados ​​implícitamente en el archivo web.config.¿Es posible alias los espacios de nombres de .NET en app.config?

<configuration> 
<system.web> 
    <pages> 
    <namespaces> 
    <add namespace="System.Web.Mvc"/> 
    </namespaces> 
    </pages> 
</system.web> 
</configuration> 

Tengo curiosidad por saber si la configuración para otros entornos .NET (como Windows Forms, aplicaciones de consola, y en particular sus aplicaciones, Silverlight) tienen esta capacidad. Si es así,, entonces la pregunta de seguimiento es si podemos alias un espacio de nombres en dicha configuración.

El análogo de este trozo de código, sino a través de configuración:

using MyNamespace = System.Web.Mvc; 

edición: mi intención viene de mirar a proyectos como silversprite cuyo objetivo es proporcionar una API idéntica para XNA para Silverlight. Esto le permite escribir un juego XNA una vez y luego implementarlo en la web usando Silverlight. El único problema es que toda la versión de Silversprite de las API se encuentra en un espacio de nombres diferente, por lo que para usarlo debe usar un ifdef alrededor de las instrucciones de uso. Hubiera sido increíble si uno pudiera simplemente alias el espacio de nombres de SilverSprite para que su código no tenga que cambiar entre plataformas.

Respuesta

10

No se requieren espacios de nombres en tiempo de compilación. Solo hay escenarios en los que la compilación se realiza "tarde" (como en ASP.NET) cuando tiene sentido.

¿Qué significa agregar un espacio de nombres en el tiempo de ejecución, si el código ya se ha compilado?

¿Eres realmente justo después de la opción de evitar escribir un montón de directivas using en la parte superior de cada archivo? Si es así, y si C# lo admitió, eso estaría en las propiedades del proyecto (que son sobre compilación, no ejecución). Sin embargo, C# no admite que: los únicos espacios de nombres importados son los especificados por las directivas using en el archivo actual.

I piensa VB tiene la idea de "espacios de nombres predeterminados" pero C# definitivamente no. Personalmente, creo que eso es algo bueno. (También puede consultar this question. No sé si es efectivamente un duplicado o no, ya que su intención no está clara en este momento)

+0

lo suficientemente justo ... Solo esperaba que tal vez no lo estaba Estoy familiarizado con la función. pero lamentablemente has confirmado lo que creí que era cierto :-) Además, aclaré mi intención anterior solo en caso de que alguien tuviera curiosidad. Gracias Jon! –

Cuestiones relacionadas