Autofac是一个轻量级的依赖注入框架,可以在这里面下载:http://code.google.com/p/autofac/downloads/list
要想了解什么是依赖注入,可以参考下这篇博客:http://www.cnblogs.com/leoo2sk/archive/2009/06/17/1504693.html
因为公司有用到这个框架,所以就网上找了些资料学习一下。
现在通过一个简单的实例来运用一下。
新建一个控制台应用程序:IocDemo
然后创建一个IPerson接口
public interface IPerson { void Work(); void Eat(); void Sleep(); void Shopping(); }
再添加一个Person类,让它继续IPerson接口
class Person:IPerson { #region IPerson 成员 public void Work() { Console.WriteLine("I am Working now"); } public void Eat() { Console.WriteLine("I am Eating now"); } public void Sleep() { Console.WriteLine("I am Sleeping now"); } public void Shopping() { Console.WriteLine("I am Shopping now"); } #endregion }
然后在Main()方法中添加以下代码就OK啦。
//构建Builder容器 var builder = new ContainerBuilder(); //注册 builder.RegisterType<Person>(); var person = builder.Build(Autofac.Builder.ContainerBuildOptions.Default).Resolve<Person>(); //然后就可以调用Person类的方法了 person.Work(); person.Sleep(); person.Shopping(); person.Eat(); Console.ReadLine();
关于注册还有另外两个方法:
//利用Register方法,支持lambda表达式 builder.Register(c => new Person());
//利用RegisterInstance builder.RegisterInstance<Person>(new Person());