分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

DotNetCore跨平台~autofac属性的自动注入

发布时间:2023-09-06 01:48责任编辑:顾先生关键词:暂无标签

回到目录

在使用autofac这个DI工具时,我们一般使用的是构造方法注入,而dotnetcore的标准框架里也集成了构造方法注入,而属性注入在一些场景下,表现的更为灵活,像java的spring框架里就有@Autowired注解来实现属性的注入,而autofac这个框架也提示了属性自动注入的方式(PropertiesAutowired)。

下面准备dao和bll层代码,bll对dao层有引用

 ??public class UserRepository ???????{ ???????????public int GetUserId() ???????????{ ???????????????return 1; ???????????} ???????} ???????public class UserService ???????{ ???????????public UserRepository _userRepository { get; set; } ???????????public int GetUserId() ???????????{ ???????????????if (_userRepository != null) ???????????????{ ???????????????????return _userRepository.GetUserId(); ???????????????} ???????????????return 0; ???????????} ???????}

在单元测试里进行属性注入的验证

 ???????[Fact] ???????public void Test1() ???????{ ???????????ContainerBuilder builder = new ContainerBuilder(); ???????????builder.RegisterType<UserService>().PropertiesAutowired();//它里面的属性自动注册 ???????????builder.RegisterType<UserRepository>(); ???????????var container = builder.Build(); ???????????UserService userService = container.Resolve<UserService>(); ???????????Assert.Equal(1, userService.GetUserId()); ???????}

经过测试我们发现,dao层的GetUserId方法被正确返回了。

回到目录

DotNetCore跨平台~autofac属性的自动注入

原文地址:https://www.cnblogs.com/lori/p/8744215.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved