我一直在使用一些基本的AOP风格解决方案来解决交叉问题,如安全性,日志记录,验证等.我的解决方案涉及Castle Windsor和DynamicProxy .我走了这条路,因为我可以使用基于Boo的DSL来应用所有内容,并保持我的代码清除属性.周末我被告知要看看PostSharp,因为它应该是一个"更好"的解决方案.我已经快速浏览了PostSharp,但是我被属性使用所拖延了.
有没有人尝试过两种解决方案,并愿意分享他们的经验?
假设我的业务层当前包含一堆DTO和单独的服务类,以便与数据存储库进行通信.
例:
class PersonService
{
IPersonRepository _personRepository;
ILogging _logger;
ICacheStorage _cache;
// Constructor here to create concrete objects.
public Person GetPersonById(int Id)
{
// error logging and caching here???
}
}
Run Code Online (Sandbox Code Playgroud)
在这一层记录和缓存是否有意义?或者,应用服务层处理这些问题会更有意义吗?或者可能还有别的东西?