[IOC]Unity使用

前端之家收集整理的这篇文章主要介绍了[IOC]Unity使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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@

支持自定义的容器扩展。@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@

;

添加一个鹦鹉类,有飞行能力,并且会叫@H_404_2@

.Fly = </span><span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;void</span><span style="color: #000000;"&gt; Say() { Console.WriteLine(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;会叫....</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;); } }</span></pre>

方法中,注入@H_404_2@

Main(= 函数中注入 鸟类对象 container.RegisterType= container.Resolve }</span></pre>

404_2@

404_2@@H_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;"&gt;public</span><span style="color: #000000;"&gt; IFlyable Fly { </span><span style="color: #0000ff;"&gt;get</span><span style="color: #000000;"&gt;; </span><span style="color: #0000ff;"&gt;set</span><span style="color: #000000;"&gt;; } [InjectionMethod] </span><span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;void</span><span style="color: #000000;"&gt; Init(IFlyable fly) { </span><span style="color: #0000ff;"&gt;this</span>.Fly =<span style="color: #000000;"&gt; fly; } </span><span style="color: #0000ff;"&gt;public</span> <span style="color: #0000ff;"&gt;void</span><span style="color: #000000;"&gt; Say() { Console.WriteLine(</span><span style="color: #800000;"&gt;"</span><span style="color: #800000;"&gt;会叫....</span><span style="color: #800000;"&gt;"</span><span style="color: #000000;"&gt;); } }</span></pre>

404_2@

404_2@@H_404_2@ 原文链接:https://www.f2er.com/csharp/191524.html

猜你在找的C#相关文章