Unity Application Block 学习笔记 之 BuildUp方法
2013-01-25 17:41
543 查看
1、不使用BuildUp方法
class Program{
static void Main(string[] args)
{
IUnityContainer container = new UnityContainer();
Fighter you = new Fighter();
you.AK47.Fire(); //抛出异常,AK47属性为null
Console.Read();
}
}
public class Gun
{
public void Fire()
{
Console.WriteLine("砰砰砰");
}
}
public class Fighter
{
public Gun AK47 { get; set; }
}
2、使用Dependency+BuildUp
class Program
{
static void Main(string[] args)
{
IUnityContainer container = new UnityContainer();
container.RegisterType<Fighter>();
Fighter you = new Fighter();
container.BuildUp(you);
you.AK47.Fire(); //"砰砰砰
Console.Read();
}
}
public class Gun
{
public void Fire()
{
Console.WriteLine("砰砰砰");
}
}
public class Fighter
{
[Dependency]
public Gun AK47 { get; set; }
}
3、使用Dependency很方便,但是如果Fighter类不是你写的,而是来自第三方类库,那么没有办法加此特性,需要使用运行时的属性注入InjectionProperty
class Program
{
static void Main(string[] args)
{
IUnityContainer container = new UnityContainer();
container.RegisterType<Fighter>(new InjectionProperty("AK47")); //可以接受多个InjectionProperty
Fighter you = new Fighter();
container.BuildUp(you);
you.AK47.Fire();
Console.Read();
}
}
public class Gun
{
public void Fire()
{
Console.WriteLine("砰砰砰");
}
}
public class Fighter
{
public Gun AK47 { get; set; }
}
4、结束语
如果在Fighter中定义两个属性,一个使用Dependency特性注入,另一个使用运行时注入,则使用Dependency特性注入的属性将会失败
相关文章推荐
- Unity Application Block 学习笔记 之 Resolve方法
- Unity Application Block 1.2 学习笔记
- Unity Application Block 1.2 学习笔记 [转]
- Unity Application Block 学习笔记之一使用配置文件
- Unity Application Block 1.2 图文学习笔记
- Unity Application Block 1.2 学习笔记(zhuan)
- Unity Application Block 1.2 图文学习笔记
- Unity Application Block 学习笔记 之 错误处理
- Unity Application Block 1.2 图文学习笔记
- Unity Application Block 学习笔记 之 命名实例、匿名实例和循环引用
- Unity Application Block 1.2 图文学习笔记
- Unity Application Block 学习笔记 之 装饰模式应用
- Unity Application Block 学习笔记 之 在VS2012中 配置文件 自动感应
- Unity Application Block 学习笔记之一使用接口
- Unity Application Block 学习笔记 之 延迟加载
- EntLib 3.1学习笔记(6) : Security Application Block
- flex 学习笔记之 Application与子component交互的两个方法
- Composite UI Application Block学习笔记之一
- extlib 5.0 学习笔记 cache application block 4 设计与实现