1

所以我一直在阅读一些关于 StackOverlow 的评论,说你不应该将业务逻辑放在自定义中ActionFilterAttribute,因为它被认为是元数据。

例如访问存储库并进行一些检查,并在您的自定义属性中进行相应的处理(错误)。

首先,我不确定我是否同意这一点,因为很多框架过滤器(身份验证)等都在做业务逻辑——主要区别主要在控制器的范围内,即只访问控制器值、路由数据等。

所以我的问题是,当您确实需要使用 ActionFilter 来标记单个操作以进行额外的逻辑/处理时,您将逻辑放在哪里?

感谢您的输入/

4

1 回答 1

1

使用 actionfilter 做一些业务逻辑并没有错。通常,这就是您实现诸如日志记录、安全性等横切关注点的方式(正如您所指出的)。

他们的目的都是以他们的名义。您的操作的过滤器。传入的操作,或对要输出的数据的传出修改。

您需要注意的是,将修改业务数据并将更改持久化的行为置于 actionfilters 中。这些事情对于下一个查看您的代码的开发人员来说是违反直觉的。它们不过滤任何东西,它们改变了整个系统的状态,这就是 Actions(Commands) 的用途。

于 2012-11-26T04:11:03.827 回答