public class MyModule : Module
{
/// <summary>
///
/// </summary>
/// <param name="builder"></param>
protected override void Load(ContainerBuilder builder)
{
// 扫描程序集中所有继承自ITransientDependency的类,并以Transient生命周期方式进行注册
builder.RegisterAssemblyTypes(ThisAssembly)
.Where(type => typeof(ITransientDependency).IsAssignableFrom(type) && type.IsClass && !type.IsAbstract)
.AsImplementedInterfaces()
.InstancePerDependency();
// 扫描程序集中所有继承自ISingletonDependency的类,并以Singleton生命周期方式进行注册
builder.RegisterAssemblyTypes(ThisAssembly)
.Where(type => typeof(ISingletonDependency).IsAssignableFrom(type) && type.IsClass && !type.IsAbstract)
.AsImplementedInterfaces()
.SingleInstance();
// 扫描程序集中所有继承自IScopedDependency的类,并以Scoped生命周期方式进行注册
builder.RegisterAssemblyTypes(ThisAssembly)
.Where(type => typeof(IScopedDependency).IsAssignableFrom(type) && type.IsClass && !type.IsAbstract)
.AsImplementedInterfaces()
.InstancePerLifetimeScope();
}
}