Estructura no accesible

05/04/2004 - 19:23 por Luis Ruiz | Informe spam
Hola, tengo una estructura publica dentro de una clase
abstracta cn propiedades estáticas. Puedo acceder a sus
propiedades estáticas si la clase esta en el mismo
proyecto de dón la trato de acceder, pero si es
refrenciada en otro dll no puedo accederla, cómo puedo
hacer para poder accedrela desde el dll?

public abstract class Global
{

public Global()
{
}

public struct Usuario
{
//Campos
private static int m_Id;
private static string m_Nombre;
private static object[,]
m_Permisos;
//Propiedades
public static int Id
{
get { return m_Id; }
set { m_Id = value; }
}
public static string Nombre
{
get
{
return m_Nombre;
}
set
{
m_Nombre = value;
}
}
public static object[,] Permisos
{
get { return m_Permisos; }
set { m_Permisos =
value; }
}
}
}

Preguntas similare

Leer las respuestas

#1 Carlos Estrada
05/04/2004 - 19:54 | Informe spam
Saludos

Una clase abstracta no puede ser instanciada. Quita el
abstract de la clase Global.


Hola, tengo una estructura publica dentro de una clase
abstracta cn propiedades estáticas. Puedo acceder a sus
propiedades estáticas si la clase esta en el mismo
proyecto de dón la trato de acceder, pero si es
refrenciada en otro dll no puedo accederla, cómo puedo
hacer para poder accedrela desde el dll?

public abstract class Global
{

public Global()
{
}

public struct Usuario
{
//Campos
private static int m_Id;
private static string m_Nombre;
private static object[,]
m_Permisos;
//Propiedades
public static int Id
{
get { return m_Id; }
set { m_Id = value; }
}
public static string Nombre
{
get
{
return m_Nombre;
}
set
{
m_Nombre = value;
}
}
public static object[,] Permisos
{
get { return m_Permisos; }
set { m_Permisos =
value; }
}
}
}
.

Respuesta Responder a este mensaje
#2 Anonimo
05/04/2004 - 21:23 | Informe spam
De eso se trata, no quiero instanciarla, sino acceder de
la siguiente forma:

Global.Usuario.Id = 1;

sin hacer un objeto de la clase Global en ningún momento.

Saludos

Una clase abstracta no puede ser instanciada. Quita el
abstract de la clase Global.


Hola, tengo una estructura publica dentro de una clase
abstracta cn propiedades estáticas. Puedo acceder a




sus
propiedades estáticas si la clase esta en el mismo
proyecto de dón la trato de acceder, pero si es
refrenciada en otro dll no puedo accederla, cómo puedo
hacer para poder accedrela desde el dll?

public abstract class Global
{

public Global()
{
}

public struct Usuario
{
//Campos
private static int m_Id;
private static string m_Nombre;
private static object[,]
m_Permisos;
//Propiedades
public static int Id
{
get { return m_Id; }
set { m_Id = value; }
}
public static string Nombre
{
get
{
return m_Nombre;
}
set
{
m_Nombre = value;
}
}
public static object[,] Permisos
{
get { return m_Permisos; }
set { m_Permisos =
value; }
}
}
}
.



.

Respuesta Responder a este mensaje
#3 Luis Ruiz
05/04/2004 - 22:46 | Informe spam
No hace falta, el assembly se llama UIGeneralWin32 pero
el espacio de nombres se llama
LuisRuiz.Presentacion.Win32.Clases.Generales
Y lo utilizo para invocar la clase y la estrucura. De
hecho he probado agregando variables estáticas publicas y
si me las reconoce el intelisense de VS a diferencia de
la estructura.
Gracias!
Debes lalamarla dando el nombre completo:

assembly.clase.objeto = valor;
.

Respuesta Responder a este mensaje
#4 Pedro Luna Montalvo
06/04/2004 - 01:02 | Informe spam
Si lo que realmente quieres es que la clase no sea instanciada, en lugar de
Abstract, te sugiero que uses el modificador private, internal o protected
para tu constructor, en lugar de publico.


Quedaria así:


public class Global // sin el abstract
{

private Global()
{
}



}


Usa protected si esta clase va a tener herederos y quieres que los herederos
tengan acceso al constructor.

Usa internal si la clase si puede ser instancia pero solo desde tu proyecto
(DLL, imagino).

Usa private en cualquier otro caso.

Saludos
Pedro Luna
Gye, Ecu


"Luis Ruiz" escribió en el mensaje
news:189f001c41b4f$1ee30fa0$
No hace falta, el assembly se llama UIGeneralWin32 pero
el espacio de nombres se llama
LuisRuiz.Presentacion.Win32.Clases.Generales
Y lo utilizo para invocar la clase y la estrucura. De
hecho he probado agregando variables estáticas publicas y
si me las reconoce el intelisense de VS a diferencia de
la estructura.
Gracias!
Debes lalamarla dando el nombre completo:

assembly.clase.objeto = valor;
.

Respuesta Responder a este mensaje
#5 Luis Ruiz
06/04/2004 - 16:58 | Informe spam
El problema se solucionón quitando la referencia y
volviendola a poner, lo malo que he tenido qu hyacer esto
tres ocaci0nes, cuando deseo midifar algo.


Si lo que realmente quieres es que la clase no sea


instanciada, en lugar de
Abstract, te sugiero que uses el modificador private,


internal o protected
para tu constructor, en lugar de publico.


Quedaria así:


public class Global // sin el abstract
{

private Global()
{
}

.
.
}


Usa protected si esta clase va a tener herederos y


quieres que los herederos
tengan acceso al constructor.

Usa internal si la clase si puede ser instancia pero


solo desde tu proyecto
(DLL, imagino).

Usa private en cualquier otro caso.

Saludos
Pedro Luna
Gye, Ecu


"Luis Ruiz"


escribió en el mensaje
news:189f001c41b4f$1ee30fa0$
No hace falta, el assembly se llama UIGeneralWin32 pero
el espacio de nombres se llama
LuisRuiz.Presentacion.Win32.Clases.Generales
Y lo utilizo para invocar la clase y la estrucura. De
hecho he probado agregando variables estáticas publicas y
si me las reconoce el intelisense de VS a diferencia de
la estructura.
Gracias!
Debes lalamarla dando el nombre completo:

assembly.clase.objeto = valor;
.





.

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