none
Conocer las propiedades de un objeto dinamicamente

    Question

  • Que tal.

    Llevo tiempo investigando lo siguiente y no he encontrado solucion.

    Es posible acceder a las propiedades de un objeto dinamicamente? Por ejemplo que yo pueda optener una colleccion o arreglo en donde pansando como parametro un objeto me regrese todos los nombres de sus propiedades publicas y despues yo utilizando ese arreglo pueda acceder a las propiedades del objeto. Tengo esta duda, ya que esta funcionalidad la ofrece JavaScript en donde por ejemplo puedes acceder a todos los elementos de una forma mediante un indice y obtener por ejemplo la propiedad text o value.

    Esto seria util por ejemplo si yo quisiera asiganar un valor a todas las propiedades de un objeto que empiecen con ciertas letras utilizando un ciclo for en lugar de definir el valor para cada una de las propiedades.

    Gracias.
    Wednesday, May 28, 2008 9:16 PM

Answers

  •  

    Hola,

     

    Claro que se puede:

     

    Usando System.Reflection

     

    suponiendo que "instancia" es de tipo Object y es el objeto del que quieres averiguar las propiedades:

     

    Dim esteObjeto as Type = instancia.GetType()

     

    Dim propiedades PropertyInfo() = esteObjeto.GetProperties()

     

    For Each propiedad as PropertyInfo in propiedades

     

        propiedad.SetValue() ' para asignar un valor

     

        propiedad.GetValue() ' para obtener el valor

     

        propiedad.PropertyType ' para averiguar el tipo del valor

     

        ...

     

    Next

     

    Un saludo.

     

    Colabora con el foro: Si este mensaje te es de utilidad marcalo como respuesta.

    Javier Conesa

    MCP - Analista Programador

    Web: http://www.moreplus.es/index.aspx


    Thursday, May 29, 2008 6:56 AM
    Moderator

All replies

  •  

    Hola,

     

    Claro que se puede:

     

    Usando System.Reflection

     

    suponiendo que "instancia" es de tipo Object y es el objeto del que quieres averiguar las propiedades:

     

    Dim esteObjeto as Type = instancia.GetType()

     

    Dim propiedades PropertyInfo() = esteObjeto.GetProperties()

     

    For Each propiedad as PropertyInfo in propiedades

     

        propiedad.SetValue() ' para asignar un valor

     

        propiedad.GetValue() ' para obtener el valor

     

        propiedad.PropertyType ' para averiguar el tipo del valor

     

        ...

     

    Next

     

    Un saludo.

     

    Colabora con el foro: Si este mensaje te es de utilidad marcalo como respuesta.

    Javier Conesa

    MCP - Analista Programador

    Web: http://www.moreplus.es/index.aspx


    Thursday, May 29, 2008 6:56 AM
    Moderator
  • Muchas Gracias, eso era lo que necesitaba, me será de gran ayuda.
    Thursday, May 29, 2008 4:58 PM