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