首页 > 编程语言 >C# 依赖注入

C# 依赖注入

时间:2022-10-29 17:22:40浏览次数:46  
标签:IService 依赖 service C# void Dependency public 注入

一、依赖注入定义:

只依赖于服务类的一个接口,而不依赖于具体服务类。

二,依赖注入的类别
1.构造注入

2.Setter注入

示例:

using System;
using System.Collections.Generic;
using System.Linq;
namespace SetterInjection
{
    class Program
    {
        static void Main(string[] args)
        {
            Dependency service = new Dependency(new ServiceA());
            service.Start();

            service = new Dependency(new ServiceB());
            service.Start();
        }
    }
    interface IService
    {
        void ServiceMethod();
    }
    class ServiceA : IService
    {
        public void ServiceMethod()
        {
            Console.WriteLine("Method is service A");
        }
    }
    class ServiceB : IService
    {
        public void ServiceMethod()
        {
            Console.Write("Method is service B");
        }
    }
    class Dependency
    {
        IService service = null;
        public Dependency() { }
        //构造注入
        public Dependency(IService _service)
        {
            this.service = _service;
        }
        //Setter注入
        public void Setter(IService _service)
        {
            this.service = _service;
        }
        public void Start()
        {
            this.service.ServiceMethod();
        }
    }
}

  

标签:IService,依赖,service,C#,void,Dependency,public,注入
From: https://www.cnblogs.com/microsoft-zh/p/16839171.html

相关文章

  • cmake file命令
    使用cmake文件操作时不可避免需要操作相关文件,比如读取文件内容,创建新文件的等等操作,都需要通过file命令进行操作。读文件操作fileREAD命令常用的从文件中读取操作......
  • call实现
    Function.prototype.myCall=function(obj){//靠(call),帮(绑)甜(添)姐(解)执单(删)反(返)letcontext=obj||window;//1.绑定全局环境绑context.fn=t......
  • python:ERROR: No matching distribution found for Pillow==9.1.0的处理(Python 3.6.
    一,查看当前python和pip的版本:查看python的版本:[lhdop@blog~]$python3--versionPython3.6.8查看pip的版本:[lhdop@blog~]$pip3-Vpip21.3.1from/us......
  • choco报错
    choco:无法将“choco”项识别为cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。原因:没有安装chocolatey:cho......
  • Microsoft Office for Mac最新版本安装教程,亲测可用!!!
    办公必备的Office工具,它为需要使用Office工具的用户和企业设计,让他们可以利用功能强大的Outlook来处理电子邮件、日历和通讯录事宜。你所熟知和信赖的Office经过更新......
  • CSDN 正文复制
    1.f12打开控制台2.找到文章正文对应的html元素(含"article_content"标签头)3.在该元素源代码上右键“Copy”->“Copyelement”4.保持格式操作新建一个txt文件,......
  • 配置pyqt5工具designer,pyuic, pyRCC
    前提:安装好pyQT5后打开pycharm-->file-->setting-->externaltools,-->点+号新建:name:QTdesignerGroup:ExternalToolsprogram:你的项目地址\venv\Lib\site-package......
  • 关于Windows-SSM-agent-service服务启动报错refer to service-specific error code 1
    今天在一台aws机器上,启动SSM-agent-service服务报如下错误:WindowscouldnotstarttheAmazonSSMAgentonLocalComputer.Formoreinformation,reviewtheSystem......
  • m1 mac解决向日葵、腾讯会议无法添加麦克风权限问题
    sudosqlite3~/Library/Application\Support/com.apple.TCC/TCC.db"INSERTorREPLACEINTOaccessVALUES('kTCCServiceMicrophone','com.oray.sunlogin.macclient',0,......
  • Codeforces Round #750 (Div. 2) F1
    F1.KorneyKorneevichandXOR(easyversion)我们观察题意发现我们需要找的是一个上升序列我们回忆上升序列的状态设计dp[i]表示第i个作为结尾最长的序列长度是多少......