.net mvc使用Autofac实现依赖注入IOC最简单实例教程
            
            
            
            Autofac是一个轻量级的依赖注入的框架,同类型的框架还有Spring.NET,Unity,Castle等。
namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            ContainerBuilder builder = new ContainerBuilder();
            builder.RegisterType<AutoFacManager>();
            builder.RegisterType<Worker>().As<IPerson>();
            using (IContainer container = builder.Build())
            {
                AutoFacManager manager = container.Resolve<AutoFacManager>();
                manager.Say();
            } 
            Console.ReadKey();
        }
    }
    public interface IPerson
    {
        void Say();
    }
    public class Worker : IPerson
    {
        public void Say()
        {
            Console.WriteLine("我是一个工人!");
        }
    }
    public class Student : IPerson
    {
        public void Say()
        {
            Console.WriteLine("我是一个学生!");
        }
    }
    public class AutoFacManager
    {
        IPerson person;
        public AutoFacManager(IPerson MyPerson)
        {
            person = MyPerson;
        }
        public void Say()
        {
            person.Say();
        }
    }
}
以上例子,是一个最简单的例子。简单解释:
1、ContainerBuilder类型的作用
组件通过ContainerBuilder的对象注册。
2、组件
对象需要从组件中来获取,比如例子中的Worker类的实例就需要从组件中获取。
3、哪些实例可以作为组件
- Lambda表达式
 - 一个类型
 - 一个预编译的实例
 - 实例类型所在的程序集
 
4、容器
ContainerBuilder的Build()方法可以创建容易,从容器的Resolve()方法能够获得对象。
5、为了指定组件服务是某一接口
As()方法将用于注册时之指定:builder.RegisterTye<TaskController>().As<TController>();
6、组件的依赖关系
组件的依赖关系主要通过接口实现,如Worker:IPerson
                        猜您可能还喜欢
                    
                    - 完美解决iis下JWplayer提示Error loading media: File could not be played错误(4047)
 - asp.net mvc+jquery easyui开发基础(一)模块首页及增加、修改、删除模块实现(3364)
 - .Net Mvc中使用Jquery EasyUI控件讲解(一)表格控件datagrid使用介绍(2987)
 - asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(三)登录模块开发(2883)
 - asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(七)权限管理模块之系统菜单动态生成(2869)
 - asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(八)权限管理模块之权限管理实现(2475)
 - asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(六)权限管理模块之初始数据准备(2462)
 - Jquery ajax访问asp.net web api跨域问题解决方案(1914)
 - asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(五)后台模板html页面集成到项目中(1692)
 - .Net Mvc中使用Jquery EasyUI控件讲解(二)树形控件tree使用介绍(1641)
 
                    评论列表
                
                发表评论
文章分类
                
            文章归档
                
            阅读排行
                - 1. Windows Server 2008 R2永久激活及Chew-WGA v0.9下载(13262)
 - 2.Visual Studio 2017中安装visualSVN及使用详解(5197)
 - 3.完美解决iis下JWplayer提示Error loading media: File could not be played错误(4047)
 - 4.asp.net mvc+jquery easyui开发基础(一)模块首页及增加、修改、删除模块实现(3364)
 - 5.Android avax.net.ssl.SSLPeerUnverifiedException: No peer certificate 解决方法(httpClient支持HTTPS的访问方式)(3217)
 - 6..Net Mvc中使用Jquery EasyUI控件讲解(一)表格控件datagrid使用介绍(2987)
 - 7.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(三)登录模块开发(2883)
 - 8.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(七)权限管理模块之系统菜单动态生成(2869)
 - 9.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(八)权限管理模块之权限管理实现(2475)
 - 10. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(六)权限管理模块之初始数据准备(2462)
 
    