原文地址:http://www.cnblogs.com/ruinet/archive/2010/03/16/1686480.html

 

 Unity是微软模式与实践团队开发的一个轻量级、可扩展的依赖注入容器。官方主页是:http://www.codeplex.com/unity,最新版本是1.2,包括在Microsoft Enterprise Library中。

使用实例:

   为了接下来的使用,准备接口和类:  

 public interface ILogger
  {
    
void Write(string message);
  }
  
public class TextFileLogger:ILogger
  {
    
public void Write(string message)
    {
      Console.WriteLine(
"Writed Log To File:\t" +message);
    }
  }

  
public class DatabaseLogger:ILogger
  {
    
public void Write(string message)
    {
      Console.WriteLine(
"Writed Log To Database:\t" + message);
    }
  }

 创建容器:

class Program
{
static void Main(string[] args)
{
IUnityContainer container
= new UnityContainer();
}
}

一个容器中也可包括多个子容器

class Program
{
static void Main(string[] args)
{
IUnityContainer parentContainer = new UnityContainer();
UnityContainer childContainer =parentContainer.CreateChildContainer();
}
}


通过代码方式注册对象到容器: 


//创建容器
IUnityContainer container = new UnityContainer();

//向容器中注册对象
container.RegisterType<ILogger, TextFileLogger>(); //默认对象
container.RegisterType<ILogger, DatabaseLogger>("DatabaseLogger");


ILogger logger
= container.Resolve<ILogger>();
logger.Write(
" hello Unity");

ILogger textlogger
= container.Resolve<ILogger>("DatabaseLogger");
textlogger.Write(
" hello Unity");

//遍历输出已注册的ILogger接口对象
foreach (object mapping in container.ResolveAll<ILogger>())
{
Console.WriteLine(mapping.GetType());
}

相关文章:

  • 2022-12-23
  • 2022-01-15
  • 2021-07-02
  • 2022-12-23
  • 2021-07-17
  • 2022-12-23
  • 2021-07-14
猜你喜欢
  • 2021-10-22
  • 2021-07-27
  • 2021-09-09
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案