Autofac框架详解
一、组件 创建出来的对象需要从组件中来获取,组件的创建有如下4种(延续第一篇的Demo,仅仅变动所贴出的代码)方式: 1、类型创建RegisterType AutoFac能够通过反射检查一个类型,选择一个合适的构造函数,创造这个对象的实例。主要通过RegisterType<T>() 和 RegisterType(Type) 两个方法以这种方式建立。 ContainerBuilder使用 As() 方法将Component封装成了服务使用。 builder.RegisterType<AutoFacManager>(); builder.RegisterType<Worker>().As<IPerson>(); 2、实例创建 builder.RegisterInstance<AutoFacManager>(new AutoFacManager(new Worker())); 单例 提供示例的方式,还有一个功能,就是不影响系统中原有的单例: builder.RegisterInstance(MySingleton.GetInstance()).ExternallyOwned(); //将自己系统中原有的单例注册为容器托管的单例 这种方法会确保系统中的单例实例最终转化为由容器托管的单例实例。 3、Lambda表达式创建