正如.NET 反射设置私有属性中所厌恶的那样,可以使用私有设置器设置属性。但是当在基类中定义属性时,会抛出 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);
}
}
有谁知道解决这种情况的方法?
编辑:给出的示例是对问题的简单说明。在现实世界的场景中,我不知道属性是定义在基类中,还是定义在基类的基类中。