我是 AOP 的新手并发布了尖锐的 (2.1.0.0)。我一直在试验属性/方法拦截,并且能够为我编写的类编写拦截器方面。
我的目标是在编译之前没有包含任何逻辑的列表。
我想要实现的一个例子是:
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?