Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Asignar un valor a una propiedad con setter privado

Iniciado por blau, 19 de Septiembre de 2010, 02:14:41 AM

« anterior - próximo »

blau

En todos lados dice que es posible mediante reflexion, pero yo no lo consigo...

Cuando hago esto:

Código (csharp) [Seleccionar]
objecto.GetType().GetMethods(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance)


no me devuelve los metodos privados y deberia por que si no para que %·%&  esta el BindingFlags.NonPublic,

¿alguna idea?

aunque lo estoy haciendo de una clase heredada, voy a probar desde el tipo de la clase base.


blau

Era eso, hay que recorrer la cadena de herencia,

ya estaba loco,  :grrr:


Código (csharp) [Seleccionar]


               pi = type.GetProperty(elem, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
               if (pi != null)
                {
                    while (pi.GetSetMethod(true) == null)
                    {
                        type = type.BaseType;
                        pi = type.GetProperty(elem, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
                    }
               }






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.