[Asp.Net Core]Autofac单抽象多实现构造函数注入

Posted 厦门德仔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Asp.Net Core]Autofac单抽象多实现构造函数注入相关的知识,希望对你有一定的参考价值。

1.注册的时候可以指定一个标识

            #region 一个接口多个实现
            containerBuilder.RegisterType<TestServiceA>().Named<ITestServiceA>("TestServiceA");
            containerBuilder.RegisterType<TestServiceUpdate>().Named<ITestServiceA>("TestServiceUpdate");
            #endregion

2.在控制器中获取的时候获取一个Autofac的上下文,通过上下文+标识,得到不同的实现的实例;

 #region 一个接口多个实现
        [CustomPropertyAttribute]
        private ITestServiceA iTestServiceAA  get; set; 
        private readonly IComponentContext _ComponentContext = null;
        public SixThController(IComponentContext componentContext)
        
            _ComponentContext = componentContext;
        

        public IActionResult Index()
        
            ITestServiceA testServiceA = _ComponentContext.ResolveNamed<ITestServiceA>("TestServiceA");
            ITestServiceA testServiceUpdate = _ComponentContext.ResolveNamed<ITestServiceA>("TestServiceUpdate");
            iTestServiceAA.Show();
            return View();
        
        #endregion

3.测试验证


以上是关于[Asp.Net Core]Autofac单抽象多实现构造函数注入的主要内容,如果未能解决你的问题,请参考以下文章

[Asp.Net Core]Autofac单抽象多实现构造函数注入

[Asp.Net Core]Autofac单抽象多实现构造函数注入

[Asp.Net Core]Autofac抽象多实现的问题

[Asp.Net Core]Autofac抽象多实现的问题

[Asp.Net Core]Autofac抽象支持AOP

[Asp.Net Core]Autofac抽象支持AOP