美文网首页C#技术干货
C#依赖注入- setter注入

C#依赖注入- setter注入

作者: 张中华 | 来源:发表于2019-05-18 18:04 被阅读3次

在文章 C#依赖注入-初步概念了解 中,简单的介绍了依赖注入常用三种方式:setter注入,构造函数注入,接口注入。
在此文章中,使用代码具化对setter注入的解释。

setter注入:
就是在类A里面定义一个C接口的属性D,在A的上下文通过B实例化一个对象,然后将这个对象赋值给属性D。主要就是set 与 get

Setter注入(Setter Injection)是指在客户类中,设置一个服务类接口类型的数据成员,并设置一个Set方法作为注入点,这个Set方法接受一个具体的服务类实例为参数,并将它赋给服务类接口类型的数据成员。

实例Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SetterInjection
{
    // 首先定义一个接口
    internal interface IServiceClass
    {
        String ServiceInfo();
    }

    // 定义一个类,实现接口IServiceClass, 并实现方法ServiceInfo, return "我是ServceClassA"
    internal class ServiceClassA : IServiceClass
    {
        public String ServiceInfo()
        {
            return "我是ServceClassA";
        }
    }
    // 再定义一个类, 实现接口IServiceClass, 并实现方法ServiceInfo, return "我是ServceClassB"
    internal class ServiceClassB : IServiceClass
    {
        public String ServiceInfo()
        {
            return "我是ServceClassB";
        }
    }

    // 定义一个Client类,实现接口注入
    internal class ClientClass
    {
        //注入点
        private IServiceClass _serviceImpl;
        //客户类中的方法,初始化注入点  
        public void Set_ServiceImpl(IServiceClass serviceImpl)
        {
            this._serviceImpl = serviceImpl;
        }

        public void ShowInfo()
        {
            Console.WriteLine(_serviceImpl.ServiceInfo());
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            IServiceClass serviceA = new ServiceClassA();
            IServiceClass serviceB = new ServiceClassB();

            ClientClass client = new ClientClass();

            client.Set_ServiceImpl(serviceA);
            client.ShowInfo();//结果:我是ServceClassA
            client.Set_ServiceImpl(serviceB);
            client.ShowInfo();//结果:我是ServceClassB

            Console.ReadLine();
        }
    }
}
Result

参考网址: C# 依赖注入 - 一杯水M - 博客园


相关文章

  • C#依赖注入- setter注入

    在文章 C#依赖注入-初步概念了解 中,简单的介绍了依赖注入常用三种方式:setter注入,构造函数注入,接口注入...

  • 结构体注入VS setter 注入

    结构体注入,setter注入是比较常用的依赖注入方式,都有各自的优缺点。setter注入是Spring推荐的依赖注...

  • Spring-DI(依赖注入)

    Spring DI依赖注入 setter设置注入(保证类中有提供setter方法) 构造器注入 命名空间注入 1、...

  • Spring Bean 装配

    依赖注入的方式 依赖注入可以分为3种方式: 构造器注入。 setter注入。 接口注入。 其中构造器注入和 set...

  • 有关Spring注解梳理

    Spring核心注解 依赖注入 构造器注入 : setter注入: 事务 @...

  • JAVA 核心笔记 || [xxx] Spring 之 依赖注入

    Spring 依赖注入 DL Spring 两种注入方式 Setter 方法注入 构造器注入 使用App.java...

  • Spring三种bean注入方式

    Spring中依赖注入有三种注入方式:一、构造器注入;二、设值注入(setter方式注入);三、Feild方式注入...

  • IOC(setter注入)

    我们也可以通过setter方法注入依赖项。 的 子元素用于setter注入 示例: Employee3.java...

  • 2018-07-18

    依赖注入方式 1.0开始,setter、构造器注入 2.5开始,Autowired注解的基于field方式注入 创...

  • 06--Spring注入集合属性

    Spring的依赖注入方式大体上可以分为三种: 构造函数注入 Setter方法注入 方法注入 (lookup-me...

网友评论

    本文标题:C#依赖注入- setter注入

    本文链接:https://www.haomeiwen.com/subject/xyeuoqtx.html