IoC容器Autofac使用入门(三)
来源:互联网 发布:php ajax 跨域 编辑:程序博客网 时间:2024/05/21 06:02
通过配置文件实现对象的创建
Program.cs的代码如下:
public class Program { /// <summary> ///获取或设置容器 /// </summary> private static IContainer Container { get; set; } /// <summary> /// 定义应用程序的入口点 /// </summary> public static void Main(string[] args) { InitContainer(); WriteDate(); Console.ReadKey(); } /// <summary> /// 初始化容器 /// </summary> private static void InitContainer() { var builder = new ContainerBuilder(); //通过配置文件实现对象的创建 //Autofac自带了一个Autofac.Configuration.dll 非常方便地对类型进行配置,避免了程序的重新编译。 builder.RegisterModule(new ConfigurationSettingsReader()); Container = builder.Build(); } /// <summary> /// 写入的日期 /// </summary> public static void WriteDate() { using (var scope = Container.BeginLifetimeScope()) { var writer = scope.Resolve<IDateWriter>(); writer.Write(); var output = scope.Resolve<IOutput>(); output.Write("测试内容!"); } } }IDateWriter.cs,IOutput.cs,ConsoleOutput.cs,DateWriter.cs的类:
public interface IDateWriter { void Write(); }
public interface IOutput { void Write(string content); void Wait(); }
public class ConsoleOutput : IOutput { /// <summary> ///指定的内容 /// </summary> public void Write(string content) { Console.WriteLine(content); } public void Wait() { Console.ReadLine(); } }
public class DateWriter : IDateWriter { private readonly IOutput output; /// <summary> ///初始化DataWriter类的新实例. /// </summary> public DateWriter(IOutput output) { this.output = output; } public void Write() { output.Write(DateTime.Now.ToString()); output.Write("--------------------------------"); output.Wait(); } }App.config配置内容:
<?xml version="1.0" encoding="utf-8"?><configuration> <configSections> <section name="autofac" type="Autofac.Configuration.SectionHandler, Autofac.Configuration" /> </configSections> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" /> </startup> <autofac defaultAssembly="AutofacConsole"> <components> <component type="AutofacConsole.ConsoleOutput" service="AutofacConsole.Interface.IOutput" /> <component type="AutofacConsole.DateWriter" service="AutofacConsole.Interface.IDateWriter"/> </components> </autofac> </configuration>
运行结果:
0 0
- IoC容器Autofac使用入门(三)
- IoC容器Autofac使用入门(一)
- IoC容器Autofac使用入门(二)
- 使用StructureMap和Autofac等Ioc容器
- Ioc容器Autofac介绍
- IoC容器Autofac
- IoC容器Autofac
- Ioc容器Autofac
- AutoFac使用~IOC容器(DIP,IOC,DI)
- Ioc容器-Autofac之三-三种注册方式
- Ioc容器-Autofac之一
- autofac注入WCF IOC容器
- Ioc容器-Autofac 之四-依赖注入框架Autofac的简单使用
- IoC容器Autofac(1) -- 什么是IoC以及理解为什么要使用Ioc
- Ioc容器Autofac asp.net mvc中整合autofac
- 【.Net码农】【Autofac】Ioc容器Autofac系列(1)-- 初窥
- Ioc容器Autofac系列(1)-- 初窥
- Ioc容器-Autofac之二
- 设置ASP.NET MVC4.5站点默认页为html页
- Linux 端口占用问题
- hdu 2147
- apache-tomcat-9安装
- axure中this/target.属性的执行效率低于局部变量.属性,解决后台刷新数据延时抖动问题
- IoC容器Autofac使用入门(三)
- java反射详解
- iOS实现七牛多图片、文件上传和下载
- mybatis-generator自动生成器插件使用详解
- 第十天: 定时器、看门狗、PWM、蜂鸣器、RTC原理及代码实战
- English Daily - August 13,2016-Letty
- Yaf的安装与Hello,world测试
- 九度oj--1003和1049
- python的import与from...import的不同之处