• Unity学习笔记(3):获取对象


    在上一篇文章中(Unity映射注册)中概要介绍了Unity中的映射机制,本节主要介绍对象获取,包括默认获取,通过名称获取,获取全部对象,同时通过加载配置文件,然后再获取对象。

    通过代码获取对象

    方式1:默认获取

    IUnityContainer container = new UnityContainer();
    //默认注册(无命名)
    container.RegisterType<ILogger,ServiceLog>(); 

    //获取对象
    ILogger serviceLog = container.Resolve<ILogger>();
    //调用方法
    serviceLog.Info("日志信息");

    方式2:根据名称获取

    IUnityContainer container = new UnityContainer(); 
    
    //命名注册 
    container.RegisterType<ILogger, ServiceLog>("servicelog"); 
    
    //指定命名解析对象 
    ILogger serviceLog = container.Resolve<ILogger>("servicelog");
    //调用方法
    serviceLog.Info("日志信息");

    方式3:获取同一类型全部对象

    IUnityContainer container = new UnityContainer();
    //默认注册(无命名) container.RegisterType<ILogger,ServiceLog>();
    //命名注册 
    container.RegisterType<ILogger, ServiceLog>("servicelog"); 
    //获取容器中所有IClass的注册的已命名对象
    IEnumerable<ILogger> logList = container.ResolveAll<ILogger>();

    foreach (var item in logList)
    {
      item.Info("日志信息");
    }

    通过加载配置文件,再获取对象

    配置文件信息

    <configSections>
      <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection,Microsoft.Practices.Unity.Configuration"/>
    </configSections>

    <unity xmlns="http://schemas.microsoft.com/practices/2010/unity"> <!--容器--> <container name="LogContainer"> <!--映射关系--> <register type="Unity.ILogger,Unity" mapTo="Unity.ServcieLogger,Unity"></register> <register type="Unity.ILogger,Unity" name="log1" mapTo="Unity.ServcieLogger,Unity"> </register> </container> </unity>

    代码获取对象

    var container = new UnityContainer();
    UnityConfigurationSection configuration
    = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");

    //解析默认对象
    ILogger serviceLog = container.Resolve<ILogger>();
    serviceLog.Info();

    //指定命名解析对象
    ILogger serviceLog1 = container.Resolve<ILogger>("log1");
    serviceLog.ShowInfo(); 

    //获取容器中所有IClass的注册的已命名对象
    IEnumerable<ILogger> logList = container.ResolveAll<ILogger>(); 

    foreach (var item in logList)
    {
      item.Info("日志信息");
    }

    本文链接: 文章作者:雨~桐 文章出处:http://www.cnblogs.com/piscesLoveCc/ 如果您觉得阅读本文对您有帮助,请点一右下角的“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    9.17 HTML CSS
    9.16
    9.15
    9.14
    9.13
    9.12
    9.11
    9.10
    9.9
    9.8
  • 原文地址:https://www.cnblogs.com/piscesLoveCc/p/5510101.html
Copyright © 2020-2023  润新知