Asp.Net Ioc框架入门之一 Unity
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Asp.Net Ioc框架入门之一 Unity,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2564字,纯文字阅读大概需要4分钟。
内容图文
一、概述
IOC:英文全称:Inversion of Control,中文名称:控制反转,它还有个名字叫依赖注入(Dependency Injection)。
作用:将各层的对象以松耦合的方式组织在一起,解耦,各层对象的调用完全面向接口。当系统重构的时候,代码的改写量将大大减少。
依赖注入: 当一个类的实例需要另一个类的实例协助时,在传统的程序设计过程中,通常有调用者来创建被调用者的实例。然而采用依赖注入的方式,创建被调用者的工作不再由调用者来完成,因此叫控制反转,创建被调用者的实例的工作由IOC容器来完成,然后注入调用者,因此也称为依赖注入。
Unity是微软Patterns & Practices团队所开发的一个轻量级的,并且可扩展的依赖注入(Dependency Injection)容器;
它支持常用的三种依赖注入方式:构造器注入(Constructor Injection)、属性注入(Property Injection),以及方法调用注入(Method Call Injection)。
现在Unity最新的版本的4.0版,可以在微软的开源站点 https://github.com/unitycontainer/unity 下载最新的发布版本。
通过使用Unity,我们能轻松构建松耦合结构的程序,从而让整个程序框架变得清晰和易于维护。
二、简单示例
1.示例1
创建一个mvc5项目 Web.Mvc,然后在创建一个Business类库,将类库添加引用到Web.Mvc项目,在Web.Mvc项目通过nuget添加unity.mvc5
类库代码
a、Business类库定义一个接口IUserService
namespace Business { /// <summary> /// 显示信息 /// </summary> public interface IUserService { string Display(string mes); } }
b、Business类库实现接口
namespace Business { public class UserService : IUserService { /// <summary> /// 显示信息 /// </summary> /// <param name="mes"></param> public string Display(string mes) { return"I say:" + mes; } } }
c、注册依赖使用依赖注入生效
在Web.Mvc项目的Global.asax进行注册
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; using Business; using Microsoft.Practices.Unity; using Unity.Mvc5; namespace Web.Mvc { public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); // 注入 Ioc var container = this.BuildUnityContainer(); DependencyResolver.SetResolver(new UnityDependencyResolver(container)); } IUnityContainer BuildUnityContainer() { var container = new UnityContainer(); container.RegisterType<IUserService, UserService>(); return container; } } }
d、使用
namespace Web.Mvc.Controllers { public class HomeController : Controller { private IUserService userService; public HomeController(IUserService userService) { this.userService = userService; } public ActionResult Index() { ViewBag.Msg = userService.Display("hahaha"); return View(); } } }
e、在Index.cshtml找个地方写入@ViewBag.Msg 就可以,如
<h1>ASP.NET - @ViewBag.Msg</h1>
最后运行项目,实现效果
ASP.NET - I say:hahaha
参考网址:
http://www.cnblogs.com/zhangchenliang/archive/2013/01/08/2850970.html
https://www.lanhusoft.com/Article/108.html
原文:http://www.cnblogs.com/xcsn/p/7395900.html
内容总结
以上是互联网集市为您收集整理的Asp.Net Ioc框架入门之一 Unity全部内容,希望文章能够帮你解决Asp.Net Ioc框架入门之一 Unity所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。