首页 > 其他分享 >.net core (.net 6) IOC容器注入--内置容器

.net core (.net 6) IOC容器注入--内置容器

时间:2022-12-30 14:12:07浏览次数:42  
标签:容器 string core ITestServiceA Demo02 Interface net public

1、添加类库项目 Demo02.Interface、Demo02.Service

 

2、创建ITestServiceA接口

namespace Demo02.Interface
{
    public interface ITestServiceA
    {
        public string ShowA(string info);

    }
}

3、创建TestServiceA.cs实现ITestServiceA接口

using Demo02.Interface;

namespace Demo02.Service
{
    public class TestServiceA : ITestServiceA
    {
        public TestServiceA()
        {
            Console.WriteLine($"{GetType().Name} 被构造~");
        }
        public string ShowA(string info)
        {
            return $"this is from {GetType().Name} ShowA:{info}";
        }
    }
}

4、Demo02.Interface、Demo02.Service生成项目,在Demo02中添加依赖项。

 

 

 5、Program.cs中注册抽象与具体的关系

 

 

#region 注册抽象与具体的关系
{
    builder.Services.AddTransient<ITestServiceA, TestServiceA>();
}
#endregion

6、创建IOCContainerController,注入ITestServiceA,测试使用。

using Demo02.Interface;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;

namespace Demo02.Controllers
{
    /// <summary>
    /// IOC容器使用
    /// </summary>
    [ApiVersion("1.0")]
    [Route("[controller]/V{version:apiVersion}")]
    [ApiController]
    public class IOCContainerController : ControllerBase
    {
        private readonly ILogger<IOCContainerController> _logger;
        private readonly ITestServiceA _ITestServiceA;

        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="logger"></param>
        /// <param name="iTestServiceA">注入ITestServiceA</param>
        public IOCContainerController(ILogger<IOCContainerController> logger,ITestServiceA iTestServiceA)
        {
            _logger = logger;
            _ITestServiceA = iTestServiceA;
        }

        /// <summary>
        /// GET
        /// </summary>
        /// <returns></returns>
        [HttpGet()]
        public string GetString()
        {
            return _ITestServiceA.ShowA("IOC容器使用成功");
        }

    }
}

7、接口测试

 

 

 

标签:容器,string,core,ITestServiceA,Demo02,Interface,net,public
From: https://www.cnblogs.com/yyd-sun/p/17014759.html

相关文章

  • STL容器综合(string除外)
    ①vector容器:类似于数组,但是他是单端数组与数组的区别:数组是静态空间,vector是动态可扩展的动态扩展:找一个更大的新内存空间,把原空间的的数据拷贝一份放到新空间,然后释放......
  • kubernetes 部署报错
    1、安装网络插件报错WarningFailedCreatePodSandBox7m52skubeletFailedtocreatepodsandbox:rpcerror:code=Unknowndesc=failedtosetupsandboxcont......
  • [2core]WorkerService在Windows和Linux下部署与运行
    一、概述从.netframework迁移到.netcore,除了要迁移基于asp.net的web程序,还有一个项目也是比较重要的,即服务程序或叫守护进程。在.netcore中创建workerservice程序已经......
  • C#/VB.NET Excel数据分列
    C#/VB.NETExcel数据分列有时候我们需要将保存在Excel单元格中的组合型数据拆分为多列(如将全名拆分为姓和名两列)以方便我们处理、记忆或保存。为了避免重复和大量的手动输入......
  • C#/VB.NET 读取条码类型及条码在图片中的坐标位置
    我们在创建条形码时,如果以图片的方式将创建好的条码保存到指定文件夹路径,可以在程序中直接加载图片使用;已生成的条码图片,需要通过读取图片中的条码信息,如条码类型、条码绘制......
  • C#/VB.NET 在PDF表格中添加条形码
    条码的应用已深入生活和工作的方方面面。在处理条码时,常需要和各种文档格式相结合。当需要在文档中插入、编辑或者删除条码时,可借助于一些专业的类库工具来实现。本文,以操作......
  • .NET Word 文件格式转换
    不同格式的文件有不同的应用领域和优势,因此在日常开发中我们需要对文件格式进行转换。在微软Word中,可以在“文件—另存为—保存类型”中实现Word文件格式的转换。这篇文章,旨......
  • ASP.NET 5 将于2016年一季度发布
    简介:微软ASP.NET团队在GitHub宣布ASP.NET5的发布时间表和发展蓝图。该团队宣布在2015年还将发布三个Beta版,一个ASP.NET5的抢先版(RC1),到2016年一季度,ASP.Net5将正式发布。......
  • C#/VB.NET 创建PDF/UA文件
    1.什么是PDF/UA文件PDF/UA,即UniversallyAccessiblePDF,该格式的PDF文件是于2012年8月以ISO标准14289-1发布的、具有普遍可访问的PDF文档标准。为带标签的PDF文档(TaggedPDF......
  • Visual Studio 2022 MAUI NU1105(NETSDK1005) 处理记录
    故障说明MAUI项目是日常使用的项目,一直都好好的某一天修改了几行代码后,突然项目无法编译了,提示NU1105错误从Git重新拉取一份之前的代码编译也是同样的错误,经过半天......