近来MS发布了EnterLib5.0, 而Unity2也面世,觉得Unity挺有意思。
初步接触Unity,先通过一个小例子来看看如何使用。
一.直接使用EnterLib的Unity
1.建1个interface和1个implement

public interface ICaculate
{
int Add(int i, int j);
}
public class CaculateService: ICaculate
{
public int Add(int i, int j)
{
return i + j;
}
}
{
int Add(int i, int j);
}
public class CaculateService: ICaculate
{
public int Add(int i, int j)
{
return i + j;
}
}
2.在Console里面建立一个UnityContainer,并执行方法。
IUnityContainer container = new UnityContainer().RegisterType<ICaculate, CaculateService>();
Console.WriteLine(container.Resolve<CaculateService>().Add(6,4));
Console.WriteLine(container.Resolve<CaculateService>().Add(6,4));
二.使用ConfigurationSection
1.App.config
AppConfig<configuration>
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>
</configSections>
<unity>
<alias alias="ICaculate" type="LF.Unity.ICaculate, LF.Unity" />
<alias alias="Caculate" type="LF.Unity.CaculateService,LF.Unity"/>
<container name="xx">
<register type="ICaculate" name="special" mapTo="Caculate" />
</container>
</unity>
</configuration>
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>
</configSections>
<unity>
<alias alias="ICaculate" type="LF.Unity.ICaculate, LF.Unity" />
<alias alias="Caculate" type="LF.Unity.CaculateService,LF.Unity"/>
<container name="xx">
<register type="ICaculate" name="special" mapTo="Caculate" />
</container>
</unity>
</configuration>
2.利用ConfigSection读取container
Invoke IUnityContainer container = new UnityContainer();
UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");
section.Configure(container,"xx");
Console.Write(container.Resolve<CaculateService>().Add(5, 4));
UnityConfigurationSection section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");
section.Configure(container,"xx");
Console.Write(container.Resolve<CaculateService>().Add(5, 4));

浙公网安备 33010602011771号