public static void Configure() { var builder = new ContainerBuilder(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); var configuration = new ConfigurationBuilder() .SetBasePath(Path.Combine(HttpRuntime.AppDomainAppPath, "configs")) .AddJsonFile("BankServiceConfiguration.json", optional: false, reloadOnChange: false) .Build(); BankServiceConfiguration options = configuration.GetSection("bankservice").Get <BankServiceConfiguration>(); builder.RegisterInstance <BankServiceConfiguration>(options); builder.RegisterType <BankService>().As <IBankService>(); builder.RegisterType <PaymentService>().As <IPaymentService>(); builder.RegisterAssemblyTypes(Assembly.Load("PaymentGateway.Infrastructure")) .Where(t => t.Name.EndsWith("Repository")) .AsImplementedInterfaces() .InstancePerLifetimeScope(); builder.RegisterType(typeof(PaymentsContext)).As(typeof(DbContext)).InstancePerLifetimeScope(); var container = builder.Build(); var resolver = new AutofacWebApiDependencyResolver(container); GlobalConfiguration.Configuration.DependencyResolver = resolver; }
public BankService(BankServiceConfiguration configuration) { Configuration = configuration; }