私は現在、オブジェクト変更ログ機能の作業を終えており、いくつかの点を改善したいと考えています。履歴データが表示される 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;
オーバーライドされたプロパティまたはその他のソリューションを使用してサブクラスを動的に生成するようなものですか?
これは可能ですか?