asp.net-core – 从Controller传递信息到中间件
我在我的asp.net核心应用程序中设置了一个中间件,以自动将控制器操作包装在一个事务中.
public async Task Invoke(HttpContext context,MyDataContext dbContext) { if (context.Request.Method == "GET") { await _next(context); } else { using (var transaction = await dbContext.Database.BeginTransactionAsync()) { try { await _next(context); transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } } } 但是我有一个不应该在事务中运行的控制器方法(将来可能更多).让控制器操作“选择退出”中间件功能的最佳方法是什么? 将[NoTransaction]等自定义属性放在控制器方法上会很不错.但是,我无法确定是否有任何方法可以从我的中间件的Invoke()方法中确定将调用哪个控制器操作(这将使我能够从该方法中提取属性并确定是否创建事务.)这样做的正确方法是什么? 解决方法
我认为您正在寻找的是自定义过滤器.
您可以创建一个派生自ActionFilterAttribute的新类. 然后,您可以将过滤器属性添加到要运行它们的方法中. [CustomFilter],以防您将类命名为“CustomFilterAttribute”. 如果需要更多地控制过滤器类的生命周期,可以将ActionFilter用作ServiceFilter.它需要将其注册为服务,并允许您使用依赖注入. [ServiceFilter(typeof(CustomFilter))] 对此的一个很好的参考是: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 带Postgres的ASP.NET MVC; ORM建议?
- asp.net – 从div标签中引发回发事件
- asp.net删除未使用的httpmodules
- 利用EntLib授权机制实现对ASP.NET页面的自动授权
- asp.net – 用于流量加密的公共反向代理背后的WCF
- asp.net-core – 使用ASP.NET Core后端服务器验证Google访问
- ASP.NET OutputCache和回发
- asp.net-mvc – 抛出一个404像StackOverflow的,没有重定向,
- asp.net-mvc – 无法加载文件或程序集System.Web.WebPages.
- asp.net-mvc-3 – 在MVC视图中使用条件编译符号
- asp.net-mvc-3 – 如何使用剃刀包括.html或.asp文
- asp.net-mvc – 如何从Action属性返回一个Json对
- asp.net – 如何尊重“从无Cookie域中提供静态内
- asp.net-mvc – 标准ASP.NET MVC ModelBinder的文
- asp.net-mvc – 如何在Web表单和MVC2应用程序之间
- 项目中出现多个域名下的Cookie
- asp.net-mvc – ASP.NET MVC Razor – 所有表单字
- 在MVC 5中上传图像时,asp.net-mvc – Request.Fi
- VS 2012中解决方案资源管理器中的asp.net配置按钮
- asp.net-mvc – 使用KendoUI Grid的KendoUI编辑器