オブジェクトデータベースを使用してインスタンスを永続化するクラスでは、次のことを実行する必要があります。
private string _name;
public string Name
{
get { return this._name; }
set { _name = value; this.Save(); }
}
一方、私はむしろこれを入力したいと思います:
[PersistedProperty(Name)]
private string _name;
ここで、PersistedProperty属性は、デフォルトの[Property()]属性と同じようにゲッターとセッターを生成しますが、生成されたセッターにコード行を追加する必要があります。
これを行う属性を作成する方法はありますか?うまくいけば、これはIntellisenseで動作します。
デフォルトの[Property()]属性はどのように機能しますか?コードを見たら、それを移植することができます...
注:私は実際にBooでこれを行っていますが、もっと多くの人がそれに答えてくれるかもしれないので、c#コードを与えると思いましたが、Boo固有の解決策があれば、私はすべての耳です!
アップデート:
私の目的は、単にタイピングと混乱を減らすことでした。これを行う最も簡単な方法は、クラスのマークアップに基づいて部分的なクラスを生成するスクリプトを使用することでした。
マークアップから(部分クラスと並行して)ソースコードを自動生成するのは簡単で、実際には、継承や汎用型で通常解決しようとする問題のいくつかを回避するための非常に有望な方法のように見えます。