zoukankan      html  css  js  c++  java
  • DotNetCore跨平台~autofac属性的自动注入

    回到目录

    在使用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方法被正确返回了。

    回到目录

  • 相关阅读:
    Docker 容器知识点
    Docker 常用命令
    杜教筛
    后缀自动机相关
    期望DP
    从零开始的莫比乌斯反演(函数)[详细推导]
    欧拉函数|(扩展)欧拉定理|欧拉反演
    优美诗词(持续更新)
    魔法 [线段树优化DP]
    stone2 [期望]
  • 原文地址:https://www.cnblogs.com/lori/p/8744215.html
Copyright © 2011-2022 走看看