Propiedades condicionales

20/07/2006 - 16:45 por Hugo Gsell | Informe spam
Tengo una clase... que tiene unas utilidades.. es decir, en mis proyectos
las utilizo como una referencia a una dll...
Tengo una clase que tiene una propiedad HabilitaMetodos tipo booleana

si esta es true... esto me permitirá configirar independiente variás otras
propiedades y/ó metodos.

Lo que deseso es que si es false... es decir NO SE ADMINTEN LOS METODOS.
esos metodos/propiedades dependientes NO ESTEN DISPONIBLES.. es decir, que
ni aparezcan en la ayuda inteligente de .net para poder selecionarlos

Hugo A. Gsell
Sgo del Estero
Argentina

Preguntas similare

Leer las respuestas

#1 Jesús López
20/07/2006 - 17:52 | Informe spam
Eso es totalmente imposible.

Sin embargo quizá podría solucionar el problema de fondo usar un patrón de
factoría y una estructura de clases.

La clase factoría tiene un método Crear:

Public Shared Sub CrearObjeto( Parametros ) As ClaseConPropiedades
If se cumple una condición Then
Dim obj = New ClaseConPropiedades
return ClasePropiedades
Else
Dim obj = New ClaseConPropiedadesYMetodos
retrun ClaseConPropiedadesYMetodos
End If
End Sub

Una ClaseConPropiedades tiene sólo las propiedades y su constructor es
Friend, con lo que sólo puede crearse objetos de esta clase dentro de la
propia librería de clases

Public Class ClaseConPropiedades
' Escribir las propiedades

Friend Sub New()

End Sub
End

Una clase con métodos que hereda de la clase con propiedades.

Public Class ClaseConPropiedadesYMetodos
Inherits ClaseConPropiedades

Friend Sub New()

End Sub

'Implementar los métodos
End


Desde la aplicación que hace referencia a esta librería los objetos se crean
de esta manera:

Dim ObjetoConPropiedades As ClaseConPropiedades = Factoria.CrearObjeto(
Parametros )

Dim ObjetoConPropiedadesYMetodos As ClaseConPropiedadesYMetodos= TryCast(
ObjetoConPropiedades, ClaseConPropiedadesYMetodos)
If ObjetoConPropiedadesYMetodos IsNot Nothing then
ObjetoConPropiedadesYMetodos .Metodo1( Parametros )
End If

Saludos:

Jesús López




"Hugo Gsell" escribió en el mensaje
news:
Tengo una clase... que tiene unas utilidades.. es decir, en mis proyectos
las utilizo como una referencia a una dll...
Tengo una clase que tiene una propiedad HabilitaMetodos tipo booleana

si esta es true... esto me permitirá configirar independiente variás otras
propiedades y/ó metodos.

Lo que deseso es que si es false... es decir NO SE ADMINTEN LOS
METODOS. esos metodos/propiedades dependientes NO ESTEN DISPONIBLES..
es decir, que ni aparezcan en la ayuda inteligente de .net para poder
selecionarlos

Hugo A. Gsell
Sgo del Estero
Argentina

Respuesta Responder a este mensaje
#2 Jesús López
20/07/2006 - 17:57 | Informe spam
Ooops. Una correción:

Public Shared Sub CrearObjeto( Parametros ) As ClaseConPropiedades
If se cumple una condición Then
Dim obj = New ClaseConPropiedades
return obj
Else
Dim obj = New ClaseConPropiedadesYMetodos
retrun obj
End If
End Sub



"Jesús López" escribió en el mensaje
news:
Eso es totalmente imposible.

Sin embargo quizá podría solucionar el problema de fondo usar un patrón
de factoría y una estructura de clases.

La clase factoría tiene un método Crear:


Una ClaseConPropiedades tiene sólo las propiedades y su constructor es
Friend, con lo que sólo puede crearse objetos de esta clase dentro de la
propia librería de clases

Public Class ClaseConPropiedades
' Escribir las propiedades

Friend Sub New()

End Sub
End

Una clase con métodos que hereda de la clase con propiedades.

Public Class ClaseConPropiedadesYMetodos
Inherits ClaseConPropiedades

Friend Sub New()

End Sub

'Implementar los métodos
End


Desde la aplicación que hace referencia a esta librería los objetos se
crean de esta manera:

Dim ObjetoConPropiedades As ClaseConPropiedades = Factoria.CrearObjeto(
Parametros )

Dim ObjetoConPropiedadesYMetodos As ClaseConPropiedadesYMetodos=
TryCast( ObjetoConPropiedades, ClaseConPropiedadesYMetodos)
If ObjetoConPropiedadesYMetodos IsNot Nothing then
ObjetoConPropiedadesYMetodos .Metodo1( Parametros )
End If

Saludos:

Jesús López




"Hugo Gsell" escribió en el mensaje
news:
Tengo una clase... que tiene unas utilidades.. es decir, en mis proyectos
las utilizo como una referencia a una dll...
Tengo una clase que tiene una propiedad HabilitaMetodos tipo booleana

si esta es true... esto me permitirá configirar independiente variás
otras propiedades y/ó metodos.

Lo que deseso es que si es false... es decir NO SE ADMINTEN LOS
METODOS. esos metodos/propiedades dependientes NO ESTEN DISPONIBLES..
es decir, que ni aparezcan en la ayuda inteligente de .net para poder
selecionarlos

Hugo A. Gsell
Sgo del Estero
Argentina





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