.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);
}
}
この状況に対処する方法を知っている人はいますか?
編集:与えられた例は、問題の簡単な図です。実際のシナリオでは、プロパティが基本クラスで定義されているのか、基本クラスの基本で定義されているのかわかりません。