Wie in .NET Reflection set private property beschrieben, kann man eine Property mit einem privaten Setter setzen. Wenn die Eigenschaft jedoch in einer Basisklasse definiert ist, wird System.ArgumentException ausgelöst: "Property-Set-Methode nicht gefunden".Die Eigenschaft Set-Methode wurde nicht in einem abgeleiteten Typ gefunden.
kann ein Beispiel sein:
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);
}
}
Kennt jemand eine Möglichkeit, diese Situation zu bewältigen?
Bearbeiten: Das angegebene Beispiel ist eine einfache Illustration des Problems. Im Real-World-Szenario weiß ich nicht, ob die Eigenschaft in einer Basisklasse definiert oder in der Basis der Basisklasse definiert ist.
Dies würde definitiv funktionieren, wenn der Basistyp bekannt wäre. Bitte sehen Sie meine Bearbeitung. – tafa