DI:注入ActionFilterAttribute实现(ASP.NET MVC)

时间:2010-05-16 08:22:22

标签: c# asp.net-mvc dependency-injection attributes ioc-container

我想知道是否可以使用IoC容器注入特定的ActionFilterAttribute实现。

例如,假设您创建了TransactionAttribute[Transaction]

您可以使用它来装饰应该包含在持久层中的事务中的操作。但是该属性的实现细节将与您正在使用的持久性技术相关联,严格来说,您的控制器不应该知道这一点,您可能想要将其交换出来。

我想做的是定义某种TransactionAttribute接口,然后让我的IoC容器注入正确的实现。所以在我的行动中我只需要指定:

 [Transaction]
 public ActionResult SomeAction()
 {
     ....
 }

... IoC将根据配置注入正确的实现(例如NHibernateTransactionAttributeSomeOtherORMTransactionAttribute)。

这可能吗?有人做过吗?

1 个答案:

答案 0 :(得分:2)