【发布时间】:2010-05-16 08:22:21
【问题描述】:
我想知道是否可以使用 IoC 容器注入特定的 ActionFilterAttribute 实现。
例如,假设您创建了一个TransactionAttribute 类[Transaction]
您使用它来装饰应该包装在持久层中的事务中的操作。但是该属性的实现细节将与您正在使用的持久性技术相关联,严格来说,您的控制器不应该知道这一点,您可能希望将其换掉。
我想做的是定义某种TransactionAttribute 接口,然后让我的IoC 容器注入正确的实现。所以在我的行动中,我只需要指定:
[Transaction]
public ActionResult SomeAction()
{
....
}
...IoC 将根据配置注入正确的实现(例如,NHibernateTransactionAttribute 或 SomeOtherORMTransactionAttribute)。
这可能吗?有人做过吗?
【问题讨论】:
标签: c# asp.net-mvc dependency-injection attributes ioc-container