在webform中应用autofac,只有global中的写法不一样,其他使用方式都一样

nuget上引用:

global中的写法:

   private void AutoFacRegister()
{
var builder = new ContainerBuilder();
//注册MVC控制器(注册所有到控制器,控制器注入,就是需要在控制器的构造函数中接收对象)
// builder.RegisterControllers(typeof(MvcApplication).Assembly);
// builder.RegisterControllers(Assembly.GetExecutingAssembly());
//增加属性注入
// builder.RegisterControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired();
//可选,注册模型绑定
//builder.RegisterModelBinders(typeof(MvcApplication).Assembly);
//builder.RegisterModelBinderProvider();
//可选,注册web抽象层例如HttpContextBase
//builder.RegisterModule<AutofacWebTypesModule>();
//可选,启用视图页属性注入
//builder.RegisterSource(new ViewRegistrationSource());
//可选,启用方法参数注入
//builder.InjectActionInvoker(); /*接口实现*/
builder.RegisterType<StudentService>().As<IStudentService>().PropertiesAutowired(); //builder.RegisterType<TeacherService>().As<ITeacherService>().PropertiesAutowired(); //注册所有实现了 IDependency 接口的类型
Type baseType = typeof(IDependency);
Assembly[] assemblies = Directory.GetFiles(AppDomain.CurrentDomain.RelativeSearchPath, "*.dll").Select(Assembly.LoadFrom).ToArray();
builder.RegisterAssemblyTypes(assemblies)
.Where(type => baseType.IsAssignableFrom(type) && !type.IsAbstract)
.AsSelf().AsImplementedInterfaces()
.PropertiesAutowired().InstancePerLifetimeScope();
//设置依赖解析器
// var container = builder.Build();
// DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
_containerProvider = new ContainerProvider(builder.Build());
}

使用方式:

 public partial class Default : System.Web.UI.Page
{
public IStudentService _stu { get; set; } protected void Page_Load(object sender, EventArgs e)
{
Response.Write(_stu.GetStudentAge("张三"));
}
}

ASP.NET MVC IOC 之 Autofac(三)-webform中应用的更多相关文章

  1. ASP.NET MVC IOC 之AutoFac

    ASP.NET MVC IOC 之AutoFac攻略 一.为什么使用AutoFac? 之前介绍了Unity和Ninject两个IOC容器,但是发现园子里用AutoFac的貌似更为普遍,于是捯饬了两天, ...

  2. [转]ASP.NET MVC IOC 之AutoFac攻略

    本文转自:http://www.cnblogs.com/WeiGe/p/3871451.html 一.为什么使用AutoFac? 之前介绍了Unity和Ninject两个IOC容器,但是发现园子里用A ...

  3. ASP.NET MVC IOC 之AutoFac攻略

    一.为什么使用AutoFac? 之前介绍了Unity和Ninject两个IOC容器,但是发现园子里用AutoFac的貌似更为普遍,于是捯饬了两天,发现这个东东确实是个高大上的IOC容器~ Autofa ...

  4. ASP.NET MVC IOC 之 Autofac 系列开篇

    本系列主要讲述Autofac在.NET MVC项目以及webform中的使用. autofac为IOC组件,实现控制反转,主要结合面向接口编程,完成较大程度的解耦工作. 作为初学者,将学习到的每一步, ...

  5. ASP.NET MVC IOC 之 Autofac(一)

    新建一个MVC项目,如 AutoFacTest,引用autofac,如下图: 接下来就是开始进行编程了 首先,新建一个类库,名为 AutoFacTest.Service,该类库编写服务层代码,我们的接 ...

  6. ASP.NET MVC IOC 之 Autofac(二)

    在上一章节,我们已经知道了再控制器中如何注入以及使用了.这一章,我们重点讲解下,如何在服务层中使用. 我们新定义一个教师类,在服务层中,通过这个教师类服务层,获取学生的年龄.实现在教师类的服务层中调用 ...

  7. ASP.NET MVC IOC依赖注入之Autofac系列(二)- WebForm当中应用

    上一章主要介绍了Autofac在MVC当中的具体应用,本章将继续简单的介绍下Autofac在普通的WebForm当中的使用. PS:目前本人还不知道WebForm页面的构造函数要如何注入,以下在Web ...

  8. ASP.NET没有魔法——ASP.NET MVC IoC

    之前的文章介绍了MVC如何通过ControllerFactory及ControllerActivator创建Controller,而Controller又是如何通过ControllerBase这个模板 ...

  9. ASP.NET MVC IOC 之Ninject攻略

    ASP.NET MVC IOC 之Ninject攻略 一.为什么要使用Ninject? 很多其它类型的IOC容器过于依赖配置文件,老是配置,总感觉有点不爽,而且要使用assembly-qualifie ...

随机推荐

  1. eclipse springboot工程打war包方法及在Tomcat中运行的方法

    一, eclipse springboot打war包 1. 配置pom.xml文件 <packaging>war</packaging> <!-- 配置servlet,打 ...

  2. 素数、杨辉三角、封装结构和集合操作(15)——IPython使用和封装解构

    IPython使用 帮助 ? ##Ipython的概述和简介 help(name) ##查询指定名称和帮助 obj? ##列出obj对象的详细信息 obj?? ##列出更详细的信息 特殊变量 _表示前 ...

  3. CornerNet: Detecting Objects as Paired Keypoints

    CornerNet是一种anchor free的目标检测方法,不需要设置anchor,而是通过检测关键点(Keypoints),即目标的左上角(Top-Left Corners)和右下角(Bottom ...

  4. conan使用(三)--打包只有头文件的库

    参考:https://docs.conan.io/en/latest/howtos/header_only.html?highlight=header%20only 对于只含头文件的库打包非常简单,以 ...

  5. 201777010217-金云馨《面向对象程序设计(java)》第十四周学习总结

      项目 内容   这个作业属于哪个课程   https://www.cnblogs.com/nwnu-daizh/   这个作业的要求在哪里 https://www.cnblogs.com/nwnu ...

  6. Dockerfile解析(八)

    一.Dockerfile是什么 Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本. 1. 构建的步骤 运行容器:docker run 构建新的镜像:docker ...

  7. TCP/IP协议族(五)

    目前实际使用的网络模型是 TCP/IP 模型,它对 OSI 模型进行了简化,只包含了四层,从上到下分别是应用层.传输层.网络层和链路层(网络接口层),每一层都包含了若干协议. 协议(Protocol) ...

  8. SpringCloud微服务实现生产者消费者以及ribbon负载均衡

    一.SpringCloud_eureka_server 1.导入依赖 <dependencies> <dependency> <groupId>junit</ ...

  9. 关于ENVI5.0菜单栏不能正常显示(win7 x86系统)

    在安装了envi5.0之后,打开显示的并不是之前4.8版本的样式也就罢了,还不能正常的将菜单栏显示出来. 上网搜了下,发现又是一个是版本兼容的问题 解决: 找到Envi5.0 右键---属性---兼容 ...

  10. python 利用淘宝IP库 查询IP归属地

    #coding:utf-8 from django.test import TestCase import json import urllib ip = "114.114.114.114& ...