我们目前使用Castle Windsor来管理Web应用程序中的依赖注入。 DI注册码发生在应用程序本身内,因此每个应用程序的Global.asax Application_Start()
方法中的代码大致相同。我们认为这是合适的,因为每个应用程序可能需要对某些接口进行不同的实现。
我现在正在研究AOP,特别是围绕授权。我们希望为类库中的特定类中的方法添加属性,这些类定义是否允许用户执行该方法。对于如何实现这一点,AOP听起来很不错。
唯一让我感到不舒服的是每个Web应用程序都必须为自己设置拦截器。如果其中一个Web应用程序错误地配置了AOP,我们最终可能会遇到授权代码未执行的不可接受的情况。
类库是否可以通过某种方式配置自己的AOP,或者是否可以从Web应用程序中删除配置AOP的责任?