Como disgussed en .NET Reflection set private property se puede establecer una propiedad con un setter privado. Pero cuando la propiedad se define en una clase base, se lanza System.ArgumentException: "Método de establecimiento de propiedad no encontrado".Método de conjunto de propiedades no encontrado en un tipo derivado
Un ejemplo puede ser:
using System;
class Test
{
public DateTime ModifiedOn { get; private set;}
}
class Derived : Test
{
}
static class Program
{
static void Main()
{
Derived p = new Derived();
typeof(Derived).GetProperty("ModifiedOn").SetValue(
p, DateTime.Today, null);
Console.WriteLine(p.ModifiedOn);
}
}
¿Alguien sabe una manera de hacer frente a esta situación?
Edit: El ejemplo dado es una simple ilustración del problema. En el escenario del mundo real, no sé si la propiedad se define en una clase base o se define en la base de la clase base.
Esto definitivamente funcionaría, si se conocía el tipo de base. Por favor mira mi edición. – tafa