private static void AutofacRegister()
{
var builder = new ContainerBuilder();
builder.RegisterGeneric(typeof (Repository<,>)).As(typeof (IRepository<,>));
builder.RegisterGeneric(typeof (SettingService<>)).As(typeof (ISettingService<>));
var baseType = typeof (IDependency);
var path = AppDomain.CurrentDomain.RelativeSearchPath;
var assemblies = Directory.GetFiles(path, "*.dll").Select(m => Assembly.LoadFrom(m)).ToArray();
builder.RegisterAssemblyTypes(assemblies)
.Where(type => baseType.IsAssignableFrom(type) && !type.IsAbstract)
.AsSelf() //自身服务,用于没有接口的类
.AsImplementedInterfaces() //接口服务
.PropertiesAutowired() //属性注入
.InstancePerLifetimeScope(); //保证生命周期基于请求
builder.RegisterControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired();
builder.RegisterFilterProvider();
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
}