IoC容器Autofac正篇之简单实例
先上一段代码。
namespace ConsoleApplication3 { class Program { static void Main(string[] args) { ContainerBuilder builder = new ContainerBuilder();//容器构造器 组件中的类型通过此对象注册到容器中 builder.RegisterType<AutoFacManager>();//注册类型 builder.RegisterType<Worker>().As<IPerson>();//注册类型且用as方法指定此类型是IPerson接口 using (IContainer container = builder.Build())//build方法创建容器 { AutoFacManager manager = container.Resolve<AutoFacManager>();//通过resolve方法取得对象 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.明确autofac的作用:简单说,自动创建程序所依赖对象的实例,解除程序中的强依赖。(如Program类和AutoFacManager类)
2.思考:它何时帮你创建?在你需要使用这个对象的时候也就是获取这个对象即resolve时。
创建的前提是什么?你已经向autofac注册了这个对象所依赖的资源(类型注册)和(类型关联),autofac会进行匹配。
可学习的实例:http://www.cnblogs.com/liping13599168/archive/2011/07/16/2108209.html 引入配置文件