IOC容器 Unity 依赖注入!

简介: IOC容器 Unity 依赖注入!

首先在.NET上添加NUGet程序包,在解决方案上单击右键。如下图

接着下载这个并安装上:

只要安装成功,就可以直接使用了。

下面来给你写上一个展示的代码:

using Microsoft.Practices.Unity.Configuration;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Unity;
namespace IOCDemo1
{
    class Program
    {
        static void Main(string[] args)
        {
      ContainerCodeTest1();
    }
    public static void ContainerCodeTest1()
    {
      IUnityContainer container = new UnityContainer();
      //默认注册(无命名),如果后面还有默认注册会覆盖前面的
      container.RegisterType<IClass, CbClass>();
      //命名注册
      container.RegisterType<IClass, EcClass>("ec");
      //命名注册
      container.RegisterType<IClass, EeClass>("Ee");
      //解析默认对象
      IClass cbClass = container.Resolve<IClass>();
            Console.WriteLine(cbClass.ShowInfo("4")); 
      //指定命名解析对象
      IClass ecClass = container.Resolve<IClass>("ec");
      ecClass.ShowInfo("4");
      //指定命名解析对象
      IClass eeClass = container.Resolve<IClass>("Ee");
      eeClass.ShowInfo("4");
      获取容器中所有IClass的注册的已命名对象
      //IEnumerable<IClass> classList = container.ResolveAll<IClass>();
      //foreach (var item in classList)
      //{
      //  item.ShowInfo("4");
      //}
    }
  }
  /// <summary>
  /// 班级接口
  /// </summary>
  public interface IClass
  {
    string ClassName { get; set; }
    string ShowInfo(string s);
  }
  /// <summary>
  /// 计科班
  /// </summary>
  public class CbClass : IClass
  {
    public string ClassName { get; set; }
    public string ShowInfo(string s)
    {
      Console.WriteLine("计科班:{0}", ClassName);
      Console.ReadLine();
      return s;
    }
  }
  /// <summary>
  /// 电商班
  /// </summary>
  public class EcClass : IClass
  {
    public string ClassName { get; set; }
    public string ShowInfo(string s)
    {
      Console.WriteLine("电商班:{0}", ClassName);
      Console.ReadLine();
      return s;
    }
  }
  public class EeClass : IClass
    {
    public string ClassName { get; set; }
    public string  ShowInfo(string s)
        {
            Console.WriteLine("电商版:{0}",ClassName);
      Console.ReadLine();
      return s;
        }
    }
}


配置文件的内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Microsoft.Practices.Unity.Configuration"/>
  </configSections>
  <unity xmlns="http://schemas.microsoft.com/practices/2010/unity">
    <!--定义类型别名-->
    <aliases>
      <add alias="IClass" type="ConsoleApplication1.UnityDemo.IClass,ConsoleApplication1" />
      <add alias="CbClass" type="ConsoleApplication1.UnityDemo.CbClass,ConsoleApplication1" />
      <add alias="EcClass" type="ConsoleApplication1.UnityDemo.EcClass,ConsoleApplication1" />
    </aliases>
    <!--容器-->
    <container name="FirstClass">
      <!--映射关系-->
      <register type="IClass"  mapTo="CbClass"></register>
      <register type="IClass" name="ec" mapTo="EcClass"></register>
    </container>
  </unity>
</configuration>

这个方法只是一种简单的引用关系,非常简便的使用上unity,还有其它的几种方式,目前小编还不会,等学会了再来更新内容。


相关文章
|
8月前
|
XML Java 测试技术
《深入理解Spring》:IoC容器核心原理与实战
Spring IoC通过控制反转与依赖注入实现对象间的解耦,由容器统一管理Bean的生命周期与依赖关系。支持XML、注解和Java配置三种方式,结合作用域、条件化配置与循环依赖处理等机制,提升应用的可维护性与可测试性,是现代Java开发的核心基石。
|
XML Java 数据格式
Spring IoC容器的设计与实现
Spring 是一个功能强大且模块化的 Java 开发框架,其核心架构围绕 IoC 容器、AOP、数据访问与集成、Web 层支持等展开。其中,`BeanFactory` 和 `ApplicationContext` 是 Spring 容器的核心组件,分别定位为基础容器和高级容器,前者提供轻量级的 Bean 管理,后者扩展了事件发布、国际化等功能。
377 18
|
XML Java 数据格式
京东一面:spring ioc容器本质是什么? ioc容器启动的步骤有哪些?
京东一面:spring ioc容器本质是什么? ioc容器启动的步骤有哪些?
|
XML Java 开发者
经典面试---spring IOC容器的核心实现原理
作为一名拥有十年研发经验的工程师,对Spring框架尤其是其IOC(Inversion of Control,控制反转)容器的核心实现原理有着深入的理解。
1037 3
|
XML Java 数据格式
Spring IOC容器的深度解析及实战应用
【10月更文挑战第14天】在软件工程中,随着系统规模的扩大,对象间的依赖关系变得越来越复杂,这导致了系统的高耦合度,增加了开发和维护的难度。为解决这一问题,Michael Mattson在1996年提出了IOC(Inversion of Control,控制反转)理论,旨在降低对象间的耦合度,提高系统的灵活性和可维护性。Spring框架正是基于这一理论,通过IOC容器实现了对象间的依赖注入和生命周期管理。
364 0
|
10月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1335 108
|
11月前
|
存储 监控 测试技术
如何将现有的应用程序迁移到Docker容器中?
如何将现有的应用程序迁移到Docker容器中?
800 57