nuity 学习之路 一、简单应用
2013-03-22 20:51
302 查看
一、 学了J2EE的spring 后,着手研究下.net的 ioc框架,在mvc 4 中集成unity的框架的案例较多,所以选择学习这个轻量级的ioc框架。
依赖注入的核心是要有抽象,否则何来注入了。所以先定义一个计算接口
具体的两个运算类:
二、以前在spring 中,只要把个属性写个标记,那么spring就会把这个属性注入进来,但是这里如果自己手动实例化那个类的话 即使标明了注入属于 也会是NULL。
所以如果这个类的属性要由Unity来管理的话 那么这个类也必须有Unity来管理,否则无法注入
依赖注入的核心是要有抽象,否则何来注入了。所以先定义一个计算接口
namespace MyUnity { public interface IComputer { double GetResult(double numA, double numB); } }
具体的两个运算类:
namespace MyUnity { public class MulOperation : IComputer { public double GetResult(double numA, double numB) { return numA - numB; } } public class AddOpertaion : IComputer { public double GetResult(double numA, double numB) { return numA + numB; } } }
static void Main(string[] args) { IUnityContainer unityContainer = new UnityContainer(); unityContainer.RegisterType<IComputer, AddOpertaion>(); // IComputer computer = unityContainer.Resolve<IComputer>(); Console.WriteLine(computer.GetResult(2, 3)); }
二、以前在spring 中,只要把个属性写个标记,那么spring就会把这个属性注入进来,但是这里如果自己手动实例化那个类的话 即使标明了注入属于 也会是NULL。
所以如果这个类的属性要由Unity来管理的话 那么这个类也必须有Unity来管理,否则无法注入
class Program { static void Main(string[] args) { IUnityContainer unityContainer = new UnityContainer(); unityContainer.RegisterType<IComputer, AddOpertaion>(); // object myClass = unityContainer.Resolve(typeof(MyClass)); Console.WriteLine((myClass as MyClass).GetResult(1, 23)); } } public class MyClass { [Dependency] //注入属性 public IComputer computer { get; set; } public double GetResult(double numA, double numB) { return computer.GetResult(numA, numB); } }
相关文章推荐
- 【学习ios之路:C语言】①指针及其简单的应用
- OpenGL-学习之路-简单二维几何变换及应用
- 【学习ios之路:C语言】函数及递归的简单应用
- jQuery学习之路(5)- 简单的表单应用
- Hadoop学习之路(四)Hadoop集群搭建和简单应用
- spring cloud-学习之路(一):搭建一个简单的Springboot项目
- phpwind代码分析之global.php简单说明(主要学习php基础知识的应用)
- Android开发学习之路--RxAndroid之简单原理
- Spring-Cloud学习之路-简单的Eureka
- 深度学习介绍及简单应用
- ios学习笔记block回调的应用(一个简单的例子)
- 菜鸟的 PHP 学习之路(三):一个简单的连接数据库并查询的小程序(1)
- PHP学习之简单应用(1)
- 树莓派学习笔记:MQTT协议的简单应用
- Hibernate的学习之路十八(Criteria的查询简单)
- 人工智能学习笔记-Keras介绍及简单应用
- docker学习实践之路[第五站]mysql镜像应用
- 批处理命令学习笔记——简单的批处理应用实例
- 面向对象设计学习之路——CRC卡及其应用