NameSpaces y referencias

29/01/2010 - 13:28 por Pablo | Informe spam
Gente... tengo un sitio web que hace referencia a un proyecto de biblioteca
de clases.

Este proyecto posee una clase llamada Usuario dentro del namespace
PDiMartino.Falabella.Falabella_Novios.Falabella_Entidades

Desde el sitio web la única manera que tengo de acceder a la clase es
colocando el nombre del namespace completo. Por ejemplo
PDiMartino.Falabella.Falabella_Novios.Falabella_Entidades.Usuario oUsuario =
null;

Yo quiero acceder colocando simplemente Falabella_Entidades.Usuario oUsuario
= null

Es posible?

Ya probé colocando

using PDiMartino;
using PDiMartino.Falabella;
using PDiMartino.Falabella.Falabella_Novios;

Pero no funciona. alguna sugerencia?

Muchas gracias!!!!!

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
29/01/2010 - 15:12 | Informe spam
"Pablo" wrote in message
news:
Gente... tengo un sitio web que hace referencia a un proyecto de
biblioteca
de clases.

Este proyecto posee una clase llamada Usuario dentro del namespace
PDiMartino.Falabella.Falabella_Novios.Falabella_Entidades

Desde el sitio web la única manera que tengo de acceder a la clase es
colocando el nombre del namespace completo. Por ejemplo
PDiMartino.Falabella.Falabella_Novios.Falabella_Entidades.Usuario oUsuario
> null;

Yo quiero acceder colocando simplemente Falabella_Entidades.Usuario
oUsuario
= null

Es posible?



Desgraciadamente, en C# cuando un espacio de nombres está formado por
varias partes, no se puede poner un "using" con sólo algunas de ellas y
dejar que el compilador te concatene el resto. Es un "todo o nada": o pones
el "using" completo, y usas en el código el nombre de la clase, o no pones
el "using" y escribes la clase con el espacio de nombres completo.

Por ejemplo, esto funciona:
using PDiMartino.Falabella.Falabella_Novios.Falabella_Entidades;
...
Usuario oUsuario;

Pero esto NO funciona:
using PDiMartino.Falabella.Falabella_Novios;
...
Falabella_Entidades.Usuario oUsuario;


Como alternativa, podrías usar un "alias":
using MiClase =
PDiMartino.Falabella.Falabella_Novios.Falabella_Entidades.Usuario;
...
MiClase oUsuario;

Pero me temo que el alias no admite un nombre de dos partes (aunque no estoy
seguro), así que sigue sin ser exactaente lo que querías.
Respuesta Responder a este mensaje
#2 Pablo
29/01/2010 - 20:26 | Informe spam
Alberto:

Desde un proyecto de clase con namespace
PDiMartino.Falabella.Falabella_Novios.Falabella_Servicio si puedo hacer
Falabella_Entidades.Usuario oUsuario = null
pero desde la aplicación web no puedo.

Puede ser que suceda esto porque el sitio web no está incluido dentro del
namespace PDiMartino.Falabella.Falabella_Novios?

Si es por esto... hay manera de incluir el sitio al namespace en cuestión?

Muchas gracias por tu ayuda!!!!
"Alberto Poblacion" wrote:

"Pablo" wrote in message
news:
> Gente... tengo un sitio web que hace referencia a un proyecto de
> biblioteca
> de clases.
>
> Este proyecto posee una clase llamada Usuario dentro del namespace
> PDiMartino.Falabella.Falabella_Novios.Falabella_Entidades
>
> Desde el sitio web la única manera que tengo de acceder a la clase es
> colocando el nombre del namespace completo. Por ejemplo
> PDiMartino.Falabella.Falabella_Novios.Falabella_Entidades.Usuario oUsuario
> > > null;
>
> Yo quiero acceder colocando simplemente Falabella_Entidades.Usuario
> oUsuario
> = null
>
> Es posible?

Desgraciadamente, en C# cuando un espacio de nombres está formado por
varias partes, no se puede poner un "using" con sólo algunas de ellas y
dejar que el compilador te concatene el resto. Es un "todo o nada": o pones
el "using" completo, y usas en el código el nombre de la clase, o no pones
el "using" y escribes la clase con el espacio de nombres completo.

Por ejemplo, esto funciona:
using PDiMartino.Falabella.Falabella_Novios.Falabella_Entidades;

Usuario oUsuario;

Pero esto NO funciona:
using PDiMartino.Falabella.Falabella_Novios;

Falabella_Entidades.Usuario oUsuario;


Como alternativa, podrías usar un "alias":
using MiClase =
PDiMartino.Falabella.Falabella_Novios.Falabella_Entidades.Usuario;

MiClase oUsuario;

Pero me temo que el alias no admite un nombre de dos partes (aunque no estoy
seguro), así que sigue sin ser exactaente lo que querías.


.

Respuesta Responder a este mensaje
#3 Alberto Poblacion
29/01/2010 - 20:45 | Informe spam
"Pablo" wrote in message
news:
Desde un proyecto de clase con namespace
PDiMartino.Falabella.Falabella_Novios.Falabella_Servicio si puedo hacer
Falabella_Entidades.Usuario oUsuario = null



Debe ser porque el propio namespace de la clase desde la que haces la
llamada es precisamente el PDiMartino.Falabella.Falabella_Novios. Con un
"using" desde otro sitio no funciona.

pero desde la aplicación web no puedo.

Puede ser que suceda esto porque el sitio web no está incluido dentro del
namespace PDiMartino.Falabella.Falabella_Novios?



Sí, casi seguro que esa es la razón.

Si es por esto... hay manera de incluir el sitio al namespace en cuestión?



Si añades una clase en el proyecto de la web, puedes ponerle el
namespace que quieras y hacer las llamadas desde ella.
Pero en cambio no te recomiendo que le intentes cambiar el namespace a
la propia página aspx. Alguna vez que lo he intentado he terminado creando
un lío espantoso y no funcionaba nada (hablo de un proyecto de tipo "sitio
web" con compilación automática; si el proyecto es de tipo "aplicación web",
al estilo de asp.net 1.x, entonces sí que se puede cambiar el namespace
tranquilamente).
Respuesta Responder a este mensaje
#4 Pablo
30/01/2010 - 19:53 | Informe spam
OK.

Muchas gracias por tu ayuda!!!

"Alberto Poblacion" wrote:

"Pablo" wrote in message
news:
> Desde un proyecto de clase con namespace
> PDiMartino.Falabella.Falabella_Novios.Falabella_Servicio si puedo hacer
> Falabella_Entidades.Usuario oUsuario = null

Debe ser porque el propio namespace de la clase desde la que haces la
llamada es precisamente el PDiMartino.Falabella.Falabella_Novios. Con un
"using" desde otro sitio no funciona.

> pero desde la aplicación web no puedo.
>
> Puede ser que suceda esto porque el sitio web no está incluido dentro del
> namespace PDiMartino.Falabella.Falabella_Novios?

Sí, casi seguro que esa es la razón.

> Si es por esto... hay manera de incluir el sitio al namespace en cuestión?

Si añades una clase en el proyecto de la web, puedes ponerle el
namespace que quieras y hacer las llamadas desde ella.
Pero en cambio no te recomiendo que le intentes cambiar el namespace a
la propia página aspx. Alguna vez que lo he intentado he terminado creando
un lío espantoso y no funcionaba nada (hablo de un proyecto de tipo "sitio
web" con compilación automática; si el proyecto es de tipo "aplicación web",
al estilo de asp.net 1.x, entonces sí que se puede cambiar el namespace
tranquilamente).


.

Respuesta Responder a este mensaje
#5 Pablo
30/01/2010 - 19:57 | Informe spam
Lo he solucionado haciendo

using Falabella_Entidades =
PDiMartino.Falabella.Falabella_Novios.Falabella_Entidades;

Entonces ahi si puedo hacer Falabella_Entidades.Usuario oUsuario = null;
como estaba precisando.

Muchas gracias, nuevamente

"Alberto Poblacion" wrote:

"Pablo" wrote in message
news:
> Desde un proyecto de clase con namespace
> PDiMartino.Falabella.Falabella_Novios.Falabella_Servicio si puedo hacer
> Falabella_Entidades.Usuario oUsuario = null

Debe ser porque el propio namespace de la clase desde la que haces la
llamada es precisamente el PDiMartino.Falabella.Falabella_Novios. Con un
"using" desde otro sitio no funciona.

> pero desde la aplicación web no puedo.
>
> Puede ser que suceda esto porque el sitio web no está incluido dentro del
> namespace PDiMartino.Falabella.Falabella_Novios?

Sí, casi seguro que esa es la razón.

> Si es por esto... hay manera de incluir el sitio al namespace en cuestión?

Si añades una clase en el proyecto de la web, puedes ponerle el
namespace que quieras y hacer las llamadas desde ella.
Pero en cambio no te recomiendo que le intentes cambiar el namespace a
la propia página aspx. Alguna vez que lo he intentado he terminado creando
un lío espantoso y no funcionaba nada (hablo de un proyecto de tipo "sitio
web" con compilación automática; si el proyecto es de tipo "aplicación web",
al estilo de asp.net 1.x, entonces sí que se puede cambiar el namespace
tranquilamente).


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida