声明周期
- InstancePerDependency 瞬时 (每次请求都是一个新的实例,默认的生命周期)
- InstancePerLifetimeScope 范围(相同作用域下获取到的服务实例相同)
- SingleInstance 单例(全局唯一实例)
- InstancePerRequest (不同的请求获取的服务实例不一样)
注入方式
名称 |
说明 |
AsImplementedInterfaces() |
是以接口方式进行注入,注入这些类的所有的公共接口作为服务 |
PropertiesAutowired |
属性注入 |
demo
/// <summary>
/// 重写Load函数
/// </summary>
/// <param name="builder"></param>
protected override void Load(ContainerBuilder builder)
{
//注册Service
var assemblysServices = Assembly.Load("Webapi.Core.Service");
builder.RegisterAssemblyTypes(assemblysServices)
.InstancePerDependency()//默认模式,每次调用,都会重新实例化对象;每次请求都创建一个新的对象
.AsImplementedInterfaces()//是以接口方式进行注入,注入这些类的所有的公共接口作为服务(除了释放资源)
.EnableInterfaceInterceptors(); //引用Autofac.Extras.DynamicProxy;应用拦截器
//注册Repository
var assemblysRepository = Assembly.Load("Webapi.Core.Repository");
builder.RegisterAssemblyTypes(assemblysRepository)
.InstancePerDependency()//默认模式,每次调用,都会重新实例化对象;每次请求都创建一个新的对象
.AsImplementedInterfaces()//是以接口方式进行注入,注入这些类的所有的公共接口作为服务(除了释放资源)
.EnableInterfaceInterceptors(); //引用Autofac.Extras.DynamicProxy;应用拦截器
}