我是新來的AOP和張貼(2.1.0.0)。我一直在嘗試使用屬性/方法攔截,並且能夠爲我編寫的類編寫inteceptor方面。是否可以使用postharp攔截通用列表上的添加/刪除方法?
我的目標是在編譯之前沒有任何邏輯的列表。
的是我想達到的一個例子是:
public class Foo
{
//Implementation should throw an exception if more than 1 string added.
public List<string> MyList { get; set; }
}
有一件事我不知道是列表。我希望能夠在列表中調用Add()或Remove()時運行一些驗證。我想我可以做到這一點,如果我在我自己的自定義列表類中包裝列表並使用aspect屬性裝飾類。
我知道我可以使用我自己的自定義列表來完成此操作,並在我自己的添加/刪除實現中做一些巧妙的事情 - 但這是我希望儘可能避免的。
是否有任何其他(或更好的)攔截這些方法的方法 - 特別是使用post sharp?
這很酷 - 我只是想盡量避免它。我知道你可以使用postsharp掛鉤事件(但還沒有探究過) - 所以如果我有一個列表引發事件,你知道是否最好寫方面來獲取這些事件,或者只寫方面攔截添加/刪除? – Jay 2013-03-26 15:07:11
我會寫這個類,實現IList並有一個支持列表來存儲項目(使其簡單)。然後,您可以實施INotifyCollectionChanged並在執行添加/移除/清除時引發事件。請參閱:http://msdn.microsoft.com/en-us/library/ms668629.aspx – 2013-03-26 15:27:51