PostSharp を使用して解決したい繰り返しのルーチン タスクは、イベント サブスクリプションとコレクションの追加です。親のオブジェクト プロシージャを各子オブジェクトのイベントにサブスクライブしたいと思います (子はリストに含まれています)。また、親のすべてのリストを親のマスター リストに追加したいと思います。どのアスペクトを使用する必要がありますか、またはどの方向に考えるべきですか?
上記の問題の例を以下に示します...
私は次のインターフェースを持っています:
public interface ITraceable
{
IList Children {get;set;}
ChangeStatus Status {get;set;}
bool IsTraceEnabled {get;set;}
event EventHandler ChangeHandler
}
次のステータス タイプがあります。
public enum ChangeStatus
{
New,
Modified,
Added,
Deleted
}
上記の構造と実装は次のとおりです。
public class Entity : ITraceable
{
public event EventHandler {get;set;}
public IList Children {get;set;}
public ChangeStatus Status {get;set;}
public bool IsTraceEnabled {get;set;}
public string Name {get;set;}
public string Address {get;set;}
public string Title {get;set;}
public List<ChildEntity1> ChildEntities {get;set;}
public List<ChildEntity2> ChildEntities {get;set;}
public void SubscribeableSub(object sender, EventArgs e)
{
Console.WriteLine("Test");
}
}
public class ChildEntity1 : ITraceable
{
public event EventHandler {get;set;}
public IList Children {get;set;}
public ChangeStatus Status {get;set;}
public bool IsTraceEnabled {get;set;}
public string Name1 {get;set;}
public string Address1 {get;set;}
public string Title1 {get;set;}
}
public class ChildEntity2 : ITraceable
{
public event EventHandler {get;set;}
public IList Children {get;set;}
public ChangeStatus Status {get;set;}
public bool IsTraceEnabled {get;set;}
public string Name2 {get;set;}
public string Address2 {get;set;}
public string Title2 {get;set;}
}