• 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();
            }
        }
    }
    
  • 相关阅读:
    当程序员的那些狗日日子
    程序员常犯的几个错误
    我没有帮你的义务,却有拒绝你的权力
    并发 并行 同步 异步 多线程的区别
    cookie的存取
    sqlserver 处理百万级以上的数据处理与优化
    为什么 jmeter 分布式测试,一定要设置 java.rmi.server.hostname
    详细解析 nginx uri 如何匹配 location 规则
    mysql innodb 从 ibd 文件恢复表数据
    mysql 从 frm 文件恢复 table 表结构的3种方法
  • 原文地址:https://www.cnblogs.com/easy5weikai/p/2961908.html
Copyright © 2020-2023  润新知