我目前正在完成对象更改日志功能的工作,并想完善一些东西。由于我们有很多应该出现历史数据的 Web 表单/报告,我想知道是否有一种方法可以在不更改控件/报告的情况下实现它。目前,我有这种情况:
public class Foo {
public string Property1 { get; set; }
public DateTime CreatedDate { get; set;}
public string GetHistoricalValue(string propertyName)
{
HistoryHelper historyHelper = CreateHistoryHelper(this);
return historyHelper.GetHistoricalValue(propertyName, CreatedDate);
}
...
public class HistoryHelper {
public string GetHistoricalValue(string propertyName, DateTime date) {
...
因此,当有人想要获取 Property1 的历史数据时:
string historicalValue = fooInstance.GetHistoricalValue("Property1");
很明显,这种方法需要对当前应用程序进行大量更改。当我以常规方式访问 Property1 时,有没有办法让 Foo 类返回历史值:
string historicalValue = fooInstance.Property1;
诸如动态生成具有覆盖属性的子类或其他解决方案之类的东西?
这可能吗?