排名
1
文章
860
粉丝
112
评论
163
.net core自定义项目模板,创建自己的模板项目,使用命令行创建模板项目
尘叶心繁 : 可以可以讲真的我都想弄个模板
net core webapi post传递参数
庸人 :
确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
.net webapi 返回需要的字段,忽略某些字段,修改字段名等
雨雨雨雨雨辰 : 已精
.net webapi 返回需要的字段,忽略某些字段,修改字段名等
雨雨雨雨雨辰 :
疯狂反射
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术
原
net core过滤器。net core过滤器中获取依赖注入对象。net core过滤器中使用依赖注入。ServiceFilter

虽然对象都可以直接实例化得到。但是所有的对象依赖关系,都用DI容器去管理,这样后面想要更换对象的时候也非常方便,项目会比较好管理,对象的依赖关系不会乱套。
注入的方式还是通过构造函数注入:
- public class VisitorLogFilter : IActionFilter
- {
- public IVisitorLogDAL _visitorLogDAL;
- //构造函数注入获取依赖对象
- public VisitorLogFilter(IVisitorLogDAL visitorLogDAL)
- {
- _visitorLogDAL = visitorLogDAL;
- }
- }
但是这样写后,由于有了构造函数我们就没法在实例化的时候去直接给他一个对象,我们就可以根据一个类型去注入
- services.AddMvc(option =>
- {
- option.Filters.Add(typeof(VisitorLogFilter));//全局注册ServiceFilter
- }).SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
局部过滤器中使用,ServiceFilter
上面我们是直接配置到所有请求都要进入的,有些时候我们不想要所有请求都进入过滤器的逻辑,我们某个控制器或者
action进去,我们就可以使用ServiceFilter
首先在ConfigureServices中注入一个ServiceFilter:
- //注入一个ServiceFilter
- services.AddScoped<VisitorLogFilter>();
在需要使用的地方:
- [ServiceFilter(typeof(VisitorLogFilter))]
- public class HomeController : Controller
- {
- }
这种方式使用,即使VisitorLogFilter里边有使用依赖注入也没关系,他会自动给你注入的。比如我们的CheckTokenFilter有用到ITokenHelper接口,他会自动帮你注入好
- public class CheckTokenFilter : Attribute, IActionFilter
- {
- private ITokenHelper tokenHelper;
- public CheckTokenFilter(ITokenHelper _tokenHelper)
- {
- tokenHelper = _tokenHelper;
- }
- }
贴一个微软官方关于过滤器的文档吧:
还可以考虑使用TypeFilter。TypeFilter和ServiceFilter 的区别
ServiceFilter和TypeFilter都实现了IFilterFactory
ServiceFilter需要对自定义的Filter进行注册,TypeFilter不需要
ServiceFilter的Filter生命周期源自于您如何注册,而TypeFilter每次都会创建一个新的实例
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)
评价