Autofac注入
一:
var builder = new ContainerBuilder(); builder.RegisterControllers(Assembly.GetExecutingAssembly()); builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>)).InstancePerHttpRequest(); builder.RegisterType<Web_ExceptionLogManager>().As<IWeb_ExceptionLogManager>().InstancePerHttpRequest(); IContainer container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes);
二: var builder = new ContainerBuilder(); builder.RegisterType<NewsRepository>().As<INewsRepository>(); builder.RegisterControllers(Assembly.GetExecutingAssembly()); IContainer container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
三:
protected void Application_Start() { var builder = new ContainerBuilder(); builder.RegisterModule(new FrameworkModule()); builder.RegisterModule(new **Module()); Assembly[] assemblies = ModuleManager.GetAllModuleAssembly().ToArray(); builder.RegisterAssemblyTypes(assemblies); builder.RegisterControllers(Assembly.GetExecutingAssembly()); builder.RegisterModelBinders(Assembly.GetExecutingAssembly()); builder.RegisterModelBinderProvider(); builder.RegisterModule(new ConfigurationSettingsReader("*****")); var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); }
public class **Module : Module { public static string **Context { get { return "**Context"; } } protected override void Load(ContainerBuilder builder) { builder.RegisterType<**Repository>().As<I**Repository>();base.Load(builder); }