Unity是什么?
404_2@
Unity特性
404_2@
功能。在Unity中,支持constructor injection(构造器注入),property setter injection(属性设置值注入)和method call injection(方法注入)。@H_404_2@
支持容器的体系结构。一个容器可以有子容器,允许从子容器到父容器的对象定位查询。@H_404_2@
配置文件进行准备和配置容器。@H_404_2@
属性设置值注入和方法注入除外),这也是轻量级容器的一个体现。@H_404_2@
Unity实践
404_2@
404_2@@H_404_2@
404_2@
404_2@
方法中,通过Unity容器实例化一个飞禽对象,并让它飞。@H_404_2@
Main(=
container.RegisterType= container.Resolve
}</span></pre>
输出@H_404_2@
404_2@@H_404_2@
404_2@
添加个飞机类,让其实现飞行接口@H_404_2@
方法@H_404_2@
Main(=
container.RegisterType= container.Resolve= container.Resolve
}</span></pre>
404_2@
404_2@@H_404_2@
404_2@
404_2@
Main(=
container.RegisterType((= container.Resolve(= container.Resolve(
}</span></pre>
404_2@
404_2@@H_404_2@
404_2@
404_2@
添加一个接口@H_404_2@
;
添加一个鹦鹉类,有飞行能力,并且会叫@H_404_2@
.Fly =
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> Say()
{
Console.WriteLine(</span><span style="color: #800000;">"</span><span style="color: #800000;">会叫....</span><span style="color: #800000;">"</span><span style="color: #000000;">);
}
}</span></pre>
方法中,注入@H_404_2@
Main(= 函数中注入 鸟类对象
container.RegisterType= container.Resolve
}</span></pre>
404_2@
404_2@@H_404_2@
属性上面添加[Dependency]特性,即可注入。@H_404_2@
方法与上面的相同。@H_404_2@
404_2@
初始化器注入@H_404_2@
方法。但是个特别的方法,这个方法需要添加特性[InjectionMethod] @H_404_2@
</span><span style="color: #0000ff;">public</span><span style="color: #000000;"> IFlyable Fly
{
</span><span style="color: #0000ff;">get</span><span style="color: #000000;">;
</span><span style="color: #0000ff;">set</span><span style="color: #000000;">;
}
[InjectionMethod]
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> Init(IFlyable fly)
{
</span><span style="color: #0000ff;">this</span>.Fly =<span style="color: #000000;"> fly;
}
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> Say()
{
Console.WriteLine(</span><span style="color: #800000;">"</span><span style="color: #800000;">会叫....</span><span style="color: #800000;">"</span><span style="color: #000000;">);
}
}</span></pre>
404_2@
404_2@@H_404_2@ 原文链接:https://www.f2er.com/csharp/191524.html