zoukankan      html  css  js  c++  java
  • 一个Unity例子

    接口,与实现都在不同dll中,UnitySample项目只引用接口interfaces.dll

    using Interfaces;
    using Microsoft.Practices.Unity;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Microsoft.Practices.Unity.Configuration;
    
    namespace UnitySample
    {
        class Program
        {
            static void Main(string[] args)
            {
                IUnityContainer container = new UnityContainer();
                container.LoadConfiguration("loggerContainer");
                ILogger logger = container.Resolve<ILogger>();
                logger.write("");
                Console.Read();
            }
        }
    }
    

      接口:

    namespace Interfaces
    {
       public interface ILogger
        {
            void write(string log);
        }
    }

    App.config:

    <?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">
        <container name="loggerContainer">
          <types>
            <type type="Interfaces.ILogger,Interfaces" mapTo="OneLoggerDll.OneLogger,OneLoggerDll" 
                 />
          </types>
    
        </container>
    
      </unity>
    </configuration>

    第一个接口实现:oneLogger.dll

    using System.Threading.Tasks;
    using Interfaces;
    
    namespace OneLoggerDll
    {
        public class OneLogger:ILogger
        {
            public void write(string log)
            {
                Console.Write("onelogger!");
            }
        }
    }

    第二个接口实现:twoLogger.dll

    using System.Text;
    using System.Threading.Tasks;
    
    namespace TwoLogger
    {
        public class TwoLogger:ILogger
        {
            public void write(string log)
            {
                Console.Write("two logger!");
            }
        }
    }

     注意点:LoadConfiguration是IUnityContainer的扩展函数,要引用这个dll,在Microsoft.Practices.Unity.Configuration.dll中的Microsoft.Practices.Unity.Configuration namespace下定义的UnityContainerExtensions。

  • 相关阅读:
    VMware Workstation 8.0.0 安装 Red Hat5.3
    Struts2 结合HttpClient 实现远程服务器文件下载
    按位与、或、异或等运算方法
    Java中实例方法、类方法和构造方法
    JAVA中类、实例与Class对象
    Shell学习笔记——循环
    placement new带来的rapidxml.hpp编译错误
    从GitHub下载CocosBuilder2.1的源码
    Visual Studio中,同一个solution内多个project之间的引用
    cocos2dx中让根节点的opacity影响孩子节点
  • 原文地址:https://www.cnblogs.com/liangouyang/p/4702529.html
Copyright © 2011-2022 走看看