Unity是微软Patterns & Practices团队所开发的一个轻量级的,并且可扩展的依赖注入(Dependency Injection)容器,它支持常用的三种依赖注入方式:构造器注入(Constructor Injection)、属性注入(Property Injection),以及方法调用注入(Method Call Injection).可以在微软的开源站点http://unity.codeplex.com下载最新的发布版本和文档。通过使用Unity,我们能轻松构建松耦合结构的程序,从而让整个程序框架变得清晰和易于维护。

本文为了自己方便记录,如有不对欢迎指出

1、首先建立接口

 namespace IServices
{ public interface ISchool
{ List<string> GetSchoolList();
string GetSchoolName();
}
}

2、建立实现类

 namespace ServicesSchool
{
/// <summary>
///
/// </summary>
public class School : ISchool
{
public List<string> GetSchoolList()
{
return new List<string>() {
"红旗小学","大兴小学"
}; }
public string GetSchoolName()
{
return "红旗小学";
}
}
}

3、Controller实现

 namespace MVCWCF.Controllers
{
public class HomeController : Controller
{
private IServices.ISchool _school;
public HomeController(IServices.ISchool school)
{
this._school = school;
}
public string Index()
{
ViewBag.Message = "欢迎使用 ASP.NET MVC!"; return _school.GetSchoolName();
} public ActionResult About()
{
return View();
}
}
}

4、Global.asax文件中进行注入

   protected void Application_Start()
{
AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes); RouteTable.Routes.Add(new ServiceRoute("Uap", new WebServiceHostFactory(), typeof(ServicesSchool.School))); //注入 Ioc
var container = this.BuildUnityContainer();
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
} IUnityContainer BuildUnityContainer()
{
var container = new UnityContainer();
container.RegisterType<IServices.ISchool, ServicesSchool.School>();
return container;
}

5、使用nuget为项目增加Unity相关的包

选中mvc的那个项目右键“管理NuGet 程序包”在弹出的窗口中输入Unity搜索,在结果选中Unity.MVC*点击安装。

最新文章

  1. MATLAB的PLOT函数线型设置及横坐标为字符串的代码实例
  2. 车牌识别--S5PV210測试
  3. Override ListView getAdapter造成的后果
  4. The Promise of Deep Learning
  5. zTree实现清空选中的第一个节点的子节点
  6. Cocos2d-x教程(30)-3.x版本号物理引擎的使用
  7. map标签的详细使用参数
  8. myeclipse配置SVN插件
  9. F12调试模式下使用console自动提交
  10. sp_getAppLock使用
  11. C# 虹软SDK视频人脸识别和注册
  12. MongoDB数据库的设计规范
  13. CAP分布式事务 学习及简单demo
  14. 浅析H5图片上传
  15. Codeforces Round #540 (Div. 3)--1118F1 - Tree Cutting (Easy Version)
  16. Summary: Stack Overflow Error
  17. 2018.10.02 NOIP模拟 序列维护(线段树+广义欧拉定理)
  18. 关于Python Package下的Module import方式[转]
  19. file /etc/httpd/conf.d/php.conf from install of php-5.6.37-1.el7.remi.x86_64 conflicts with file from package mod_php71w-7.1.18-1.w7.x86_64
  20. 大数据框架-Hbase

热门文章

  1. c# HighCharts使用
  2. leetcode 合并两个有序数组
  3. 1、认识Struts2
  4. 手动开发PHP模板引擎 一 (35)
  5. 【12c OCP】最新CUUG OCP-071考试题库(51题)
  6. MysqliDb 库的一些使用简单技巧(php)
  7. Ajax请求参数解释
  8. 3XX重定向
  9. Java_锁Synchronized
  10. urllib的使用