依赖注入容器Unity的基础知识
2010-07-08 11:18
232 查看
在《WCF技术剖析》中使用了Unity依赖注入容器,书中给出了两个使用Unity的方法:
方法一:直接在代码中使用
输出结果为:
UnityDemo.Foo1
UnityDemo.Foo2
方法二:使用配置文件
1、App.Config配置如下
2、代码
输出与方法一相同。
方法一:直接在代码中使用
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 UnityDemo { class Program { static void Main(string[] args) { IUnityContainer container = new UnityContainer(); container.RegisterType<IFoo, Foo1>("foo1"); container.RegisterType<IFoo, Foo2>("foo2"); Console.WriteLine(container.Resolve<IFoo>("foo1").GetType()); Console.WriteLine(container.Resolve<IFoo>("foo2").GetType()); Console.ReadKey(true); } } public interface IFoo { } public class Foo1 : IFoo { } public class Foo2 : IFoo { } }
输出结果为:
UnityDemo.Foo1
UnityDemo.Foo2
方法二:使用配置文件
1、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> <containers> <container> <types> <type name="foo1" type="UnityDemo.IFoo,UnityDemo" mapTo="UnityDemo.Foo1,UnityDemo"/> <type name="foo2" type="UnityDemo.IFoo,UnityDemo" mapTo="UnityDemo.Foo2,UnityDemo"/> </types> </container> </containers> </unity> </configuration>
2、代码
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 UnityDemo { class Program { static void Main(string[] args) { IUnityContainer container = new UnityContainer(); UnityConfigurationSection unitySection = (UnityConfigurationSection)ConfigurationManager.GetSection("unity"); unitySection.Containers.Default.Configure(container); Console.WriteLine(container.Resolve<IFoo>("foo1").GetType()); Console.WriteLine(container.Resolve<IFoo>("foo2").GetType()); Console.ReadKey(true); } } public interface IFoo { } public class Foo1 : IFoo { } public class Foo2 : IFoo { } }
输出与方法一相同。
相关文章推荐
- 深入 Unity 1.x 依赖注入容器之一:入门
- 深入 Unity 1.x 依赖注入容器之四:依赖注入
- 依赖注入容器Unity介绍
- [IoC容器Unity]第三回:依赖注入
- Unity依赖注入容器的应用
- IOC容器—Unity深度解析(三)【依赖注入】
- [IoC容器Unity]第三回:依赖注入
- 深入 Unity 1.x 依赖注入容器之二:初始化 Unity
- 依赖注入容器Unity介绍
- Unity: .NET下的依赖注入容器
- 依赖注入容器Unity Application Block快速入门
- ASP.NET Web Application 中使用 Unity 依赖注入容器
- 控制反转、依赖注入、Unity容器
- 依赖注入容器Unity介绍
- 深入 Unity 1.x 依赖注入容器之一:入门
- [IoC容器Unity]第四回:使用范例(解耦依赖注入机制)
- [IoC容器Unity]第三回:依赖注入
- Java基础知识小计 一,依赖注入和控制反转
- 关于微软企业库中依赖注入容器Unity两种生成对象的实现u
- Unity依赖注入容器的应用