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

    回到目录

  • 相关阅读:
    Cannot allocate memory(1)
    tomcat server.xml配置属性
    HTB-靶机-Nibbles
    HTB-靶机-CrimeStoppers
    HTB-靶机-FluxCapacitor
    HTB-靶机-Bashed
    HTB-靶机-Inception
    HTB-靶机-Fulcrum
    HTB-靶机-Ariekei
    HTB-靶机-Enterprise
  • 原文地址:https://www.cnblogs.com/lori/p/8744215.html
Copyright © 2020-2023  润新知