Как описано в .NET Reflection задает частное свойство, можно установить свойство с помощью частного сеттера. Но когда свойство определено в базовом классе, вызывается System.ArgumentException: "Метод набора свойств не найден".
Примером может быть:
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);
}
}
Кто-нибудь знает, как справиться с этой ситуацией?
Изменить: Приведенный пример является простой иллюстрацией проблемы. В сценарии реального мира я не знаю, определено ли свойство в базовом классе или определено в базе базового класса.