全息娇娃,紧张性失眠怎么办,南京电视台直播南京
在使用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方法被正确返回了。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论