zoukankan      html  css  js  c++  java
  • Unity之再入江湖

    引用的dll:

    Microsoft.Practices.Unity.Configuration.dll
    Microsoft.Practices.Unity.dll

    app.config

    <?xml version="1.0"?>
    <configuration>
      <configSections>
        <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>
      </configSections>
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client"/>
      </startup>
    
      <unity>
        <containers>
          <!--容器-->
          <container>
            <!--映射关系-->
            <register type="LifeManagerInUnity.IA, LifeManagerInUnity" mapTo="LifeManagerInUnity.A, LifeManagerInUnity"/>
            <register type="LifeManagerInUnity.IB, LifeManagerInUnity" mapTo="LifeManagerInUnity.B, LifeManagerInUnity"/>
            <register type="LifeManagerInUnity.IC, LifeManagerInUnity" mapTo="LifeManagerInUnity.C, LifeManagerInUnity"/>
            <register type="LifeManagerInUnity.ID, LifeManagerInUnity" mapTo="LifeManagerInUnity.D, LifeManagerInUnity"/>
          </container>
        </containers>
      </unity>
    </configuration>
    

     类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace LifeManagerInUnity
    {
        public interface IA 
        { 
            string Description { get; set; }
            void ShowInfo();
        }
        public interface IB 
        { 
            string Description { get; set; }
            void ShowInfo();
        }
    
        public interface IC 
            { 
            string Description { get; set; }
            void ShowInfo();
        }
        public interface ID
        {
            string Description { get; set; }
            void ShowInfo();
        }
    
    
        public class A : IA 
        { 
            public string Description { get; set; }
    
            public void ShowInfo()
            {
                Console.WriteLine(Description);
            }
        }
        public class B : IB 
        { 
            public string Description { get; set; }
            public void ShowInfo()
            {
                Console.WriteLine(Description);
            }
        }
        public class C : IC 
        { 
            public string Description { get; set; }
            public void ShowInfo()
            {
                Console.WriteLine(Description);
            }
        }
        public class D : ID 
        { 
            public string Description { get; set; }
            public void ShowInfo()
            {
                Console.WriteLine(Description);
            }
        }
    }                       
    

     使用实例

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Microsoft.Practices.Unity;
    using Microsoft.Practices.Unity.Configuration;
    using System.Configuration;
    
    
    namespace LifeManagerInUnity
    {
        class Program
        {
            static void Main(string[] args)
            {
                IA a1 = new A() { Description = Guid.NewGuid().ToString() };
                IA a2 = new A() { Description = Guid.NewGuid().ToString() };
    
                IB b1 = new B() { Description = Guid.NewGuid().ToString() };
    
                IUnityContainer container = new UnityContainer();
                UnityConfigurationSection configuration = (UnityConfigurationSection)ConfigurationManager.GetSection(UnityConfigurationSection.SectionName);
                configuration.Configure(container);
    
                Console.WriteLine(container.Resolve<IA>().GetHashCode());
                Console.WriteLine(container.Resolve<IA>().GetHashCode());
    
                container.RegisterInstance<IA>("A2", a2);
                container.RegisterInstance<IA>(a1);
               
                Console.WriteLine(container.Resolve<IA>().GetHashCode());
                Console.WriteLine(container.Resolve<IA>().GetHashCode());
            
                Console.WriteLine(container.Resolve<IA>("A2").GetHashCode());
                Console.WriteLine(container.Resolve<IA>("A2").GetHashCode());
    
                Console.WriteLine(container.Resolve<IA>().GetHashCode());
    
    
                Console.Read();
            }
        }
    }
    
  • 相关阅读:
    华为交换机配置命令总结
    Linux 系统启动项修复
    Linux菜鸟成长日记 ( Linux 下的 ftp 文件传输协议 )
    Linux 查看用户命令
    linux 查看过滤命令命令
    Linux篇---ftp服务器的搭建
    linux挂载详解
    园区IP地址规划(非常详细)
    Linux创建、删除文件和文件夹命令
    CentOs 7 安装 Xampp
  • 原文地址:https://www.cnblogs.com/easy5weikai/p/2961908.html
Copyright © 2011-2022 走看看