Autofac简单使用
源码下载 传上源码,终于学会传文件了。
首先 还是那句话:“不要信我,否则你死得很惨!”。
C#常见的依赖注入容器
IoC in .NET part2: StructureMap
IoC in .NET part 3: Ninject 2 beta
IoC in .NET part 5: Using CastleWindsor container
IoC Containers in .NET part 6: Unity Container
这里介绍Autofac 据说是速度最快的。我不会考证。就道听途说吧。
Autofac比较灵活,暂时只介绍简单的用法。这种用法还满足不了在生产中使用,下一篇讲如何用在生产中。
不使用Factory类 新建Manage类
public class Manage { private readonly IPeople _people; //增加了构造函数,参数是IPeople对象 public Manage(IPeople people) { _people = people; } public void Say() { _people.Say(); } public void Sex() { _people.Sex(); } }
在Main方法中使用
class Program { static void Main(string[] args) { var builder = new ContainerBuilder();//创建容器 //builder.RegisterType<Manage>();//注册 builder.Register(x => new Manage(x.Resolve<IPeople>()));//注册
//builder.RegisterType<ChineseMan>().AsImplementedInterfaces(); builder.RegisterModule(new ConfigurationSettingsReader("autofac"));//使用config中的配置注册 using (var container = builder.Build()) { var manager = container.Resolve<Manage>(); manager.Say(); manager.Sex(); } }
注册有很多种方式。最近有点累,没去深究如何使用,代码也是仿的其他blog。下篇介绍的详细一点。