一. 常见的IOC框架为Castle Windsor和Spring .Net,只不过后者比较依赖配置文件
二.为什么要使用IOC框架
1.普通的实例化方式 IMyService myService = new MyService()有一个弊端:接口与实现没有分离
2.如果使用Castle Windsor框架,实例化方式为:
IMyService myService = container.Resolve<IMyService>( );
如果接口对应多个实现类,实例化方式为:
IMyService[ ] myServices = container.ResolveAll<IMyService>( );
三. Castle Windsor
1.创建一个项目,使用Nuget引入Castle Windsor,同时需要安装Microsoft.AspNet.Mvc;
2.创建一个类继承DefaultControllerFactory:因为在ASP.NET MVC中,每次请求,DefaultControllerFactory都会创建controller的实例,所以在项目中新建一个WindsorControllerFactory类继承DefaultControllerFactory,让Castle Windsor来创建controller的实例;
using System;
using System.Web.Mvc;
using System.Web.Routing;
using Castle.MicroKernel;
namespace PersonalPlanning.Init.IOC
{
public class