当前位置: 首页 > news >正文

.net core 依赖注入的基本用发

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

namespace KeeSoft.Common 
{ 
    //定义一个User接口
    public interface IUser
    {
        string GetUserId();
    }

    //实现IUser接口 创建一个User
    public class User : IUser 
    {
       public string GetUserId() 
       { 
            return "User"; 
       } 
    }

    //实现IUser接口 创建一个User
    public class UserManager : IUser
    {
        public string GetUserId()
        {
             return "UserManager";
        }
    }
}

如何将依赖注入到类中使用

public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddScoped<KeeSoft.Common.IUser, KeeSoft.Common.UserManager>();
            services.AddMvc();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseMvc();
        }
    }

如何使用注入的依赖

namespace Controllers
{
    [Route("api/[controller]")]
    public class ValuesController : Controller
    {
       KeeSoft.Common.IUser User { get; }

       public ValuesController(KeeSoft.Common.IUser _user)
        {
            User = _user;
        }

        // GET api/values/5
        [HttpGet("{id}")]
        public string Get(int id)
        {
            return User.GetUserId();
        }
    }
}

转载于:https://my.oschina.net/kee1986/blog/2876454

相关文章:

  • win10驱动下获取cpu信息
  • 闭包--闭包之tab栏切换(四)
  • 单据类报表的制作
  • Spring Boot(1)
  • mac终端常用命令
  • ELK 使用小技巧(第 2 期)
  • Workbook导出excel封装的工具类
  • 勒索病毒防范方案-有韩立刚老师总结的非常规手段
  • js导出excel文件
  • Java枚举比较用equals还是==
  • vue两个组件间值的传递或修改方式
  • 如何在国内构建一个硅谷级的高效技术团队?
  • C#中的结构体与类的区别 (转载)
  • 如何用纯 CSS 创作一个记事本翻页动画
  • SpringBoot整合Angular应用第三弹-渲染RestAPI数据
  • Akka系列(七):Actor持久化之Akka persistence
  • android图片蒙层
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • Go 语言编译器的 //go: 详解
  • JavaScript 基本功--面试宝典
  • js递归,无限分级树形折叠菜单
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • js写一个简单的选项卡
  • Node 版本管理
  • SpiderData 2019年2月16日 DApp数据排行榜
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 对超线程几个不同角度的解释
  • 计算机在识别图像时“看到”了什么?
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 目录与文件属性:编写ls
  • 前嗅ForeSpider中数据浏览界面介绍
  • 浅谈Golang中select的用法
  • 如何实现 font-size 的响应式
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 小程序01:wepy框架整合iview webapp UI
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #100天计划# 2013年9月29日
  • #传输# #传输数据判断#
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $.ajax中的eval及dataType
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)linux下的时间函数使用
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET 4.0中的泛型协变和反变
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .net操作Excel出错解决
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • .net专家(张羿专栏)
  • .Net组件程序设计之线程、并发管理(一)