/// <summary> /// AutoFacServiceProvider /// </summary> /// <param name="services"></param> /// <param name="connectionString"></param> /// <param name="configuration"></param> /// <returns></returns> public static AutofacServiceProvider Configure(this IServiceCollection services, string connectionString, IConfigurationRoot configuration) { //注入 DependencyInjectionService.GetInstance(services) .AddMvc() .AddCookie() .AddSwagger() .AddCors() .AddDddLayering() .AddCap() .AddRedis(); //AutoFac依赖注入 var builder = new ContainerBuilder(); builder.Populate(services); var module = new ConfigurationModule(configuration); builder.RegisterModule(module); Container = builder.Build(); return(new AutofacServiceProvider(Container)); }
public void ImmutablilityTest() { // builder methods return copies; the original module is immutable ConfigurationModule builder1 = MyConfigurationModule.Conf .Set(MyConfigurationModule.TheFoo, GenericType <FooImpl> .Class); Assert.IsFalse(builder1 == MyConfigurationModule.Conf); IConfiguration config1 = builder1.Build(); // reusable IConfiguration config2 = MyConfigurationModule.Conf .Set(MyConfigurationModule.TheFoo, GenericType <FooAltImpl> .Class) .Build(); // instantiation of each just to be sure everything is fine in this situation IInjector i1 = TangFactory.GetTang().NewInjector(config1); IInjector i2 = TangFactory.GetTang().NewInjector(config2); Assert.AreEqual(42, ((IFoo)i1.GetInstance(typeof(IFoo))).getFooness()); Assert.AreEqual(7, ((IFoo)i2.GetInstance(typeof(IFoo))).getFooness()); }
private static void RegisterConfigurationModule() { Console.WriteLine(); var builder = new ContainerBuilder(); var config = new ConfigurationBuilder(); config.AddJsonFile("Autofac.json"); var configModule = new ConfigurationModule(config.Build()); builder.RegisterModule(configModule); Console.WriteLine("# Registered Configuration Module from Autofac.json file."); var container = builder.Build(); using (var scope = container.BeginLifetimeScope()) { var dateTimeProvider = scope.Resolve <IDateTimeProvider>(); Console.WriteLine("Resolved Module Registered {0}#CurrentDateTime = {1}", dateTimeProvider.GetType().Name, dateTimeProvider.CurrentDateTime); } }
private static void Init() { try { string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "autofac.json"); var config = new ConfigurationBuilder(); config.AddJsonFile(path); // Register the ConfigurationModule with Autofac. var module = new ConfigurationModule(config.Build()); var builder = new ContainerBuilder(); builder.RegisterModule(module); builder.Register <CryptoProvider>(o => ProviderFactory.CreateCryptoProvider()); m_Container = builder.Build(); } catch (Exception ex) { throw ex; } }
/// <summary> /// 服务代理设置 /// </summary> /// <param name="services"></param> // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 public IServiceProvider ConfigureServices(IServiceCollection services) { //每次GetService都会获得一个新的实例 services.AddTransient <IDemoService, DemoService>(); //在同一个Scope内只初始化一个实例 ,可以理解为( 每一个request级别只创建一个实例,同一个http request会在一个 scope内) services.AddScoped <IDemoService, DemoService>(); //整个应用程序生命周期以内只创建一个实例 services.AddSingleton <IDemoService, DemoService>(); // Add the configuration to the ConfigurationBuilder. var config = new ConfigurationBuilder(); // config.AddJsonFile comes from Microsoft.Extensions.Configuration.Json // config.AddXmlFile comes from Microsoft.Extensions.Configuration.Xml config.AddJsonFile("autofac.json"); config.AddXmlFile("autofac.xml"); // Register the ConfigurationModule with Autofac. var module = new ConfigurationModule(config.Build()); var builder = new ContainerBuilder(); builder.RegisterModule(module); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2).AddControllersAsServices(); //ContainerBuilder builder = new ContainerBuilder(); //新模块组件注册 builder.RegisterModule <DefaultModule>(); //将services中的服务填充到Autofac中. builder.Populate(services); //创建容器. Container = builder.Build(); //使用容器创建 AutofacServiceProvider return(new AutofacServiceProvider(Container)); }
public static ContainerBuilder Build(string sectionName) { var config = new ConfigurationBuilder(); //取得目前專案的路徑,原本預設是在bin的Debug資料夾 string basePath = Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory())); //設定成root路徑 config.SetBasePath(basePath); //參數是與root路徑相對的位置 config.AddJsonFile($"{sectionName}.json"); //透過Config產生Module var module = new ConfigurationModule(config.Build()); var builder = new ContainerBuilder(); //將Module註冊到Container內 builder.RegisterModule(module); return(builder); }
static void Main(string[] args) { var config = new ConfigurationBuilder(); config.AddJsonFile("config.json"); var module = new ConfigurationModule(config.Build()); var builder = new ContainerBuilder(); builder.RegisterModule(module); //builder.RegisterType<ImplementationN>().As<InterfaceN>(); var container = builder.Build(); using (var scope = container.BeginLifetimeScope()) { var impl = scope.Resolve <InterfaceN>(); Console.WriteLine(impl.GetString()); Console.ReadKey(); } }
public static IServiceProvider BuildServiceProvider(this IServiceCollection services, IConfiguration configuration) { var libraryManager = services.GetService <ILibraryManager>(); var dependencyResolver = services.GetService <IDependencyResolver>(); var dap = new DefaultAssemblyProvider(libraryManager); IEnumerable <Assembly> assemblies = dap.CandidateAssemblies; dependencyResolver.RegisterModules(assemblies); ConfigurationModule configurationModule = new ConfigurationModule(configuration); dependencyResolver.RegisterModule(configurationModule); dependencyResolver.Build(); IServiceProvider serviceProvider = dependencyResolver.Resolve <IServiceProvider>(); return(serviceProvider); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); ContainerBuilder builder = new ContainerBuilder(); builder.RegisterControllers(typeof(MvcApplication).Assembly).InstancePerRequest().PropertiesAutowired(); builder.RegisterApiControllers(typeof(MvcApplication).Assembly).InstancePerRequest(); IConfigurationBuilder config = new ConfigurationBuilder(); config.AddJsonFile("autofac.json"); ConfigurationModule module = new ConfigurationModule(config.Build()); builder.RegisterModule(module); builder.RegisterFilterProvider(); builder.RegisterWebApiFilterProvider(GlobalConfiguration.Configuration); //builder.RegisterType<LogMvcActionAttribute>().PropertiesAutowired(); //builder.RegisterType<LogWebApiActionAttribute>().PropertiesAutowired(); IContainer container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container); IExtensibilityManager extensibilityManager = container.Resolve <IExtensibilityManager>(); extensibilityManager.GetModuleEvents(); // stores them in state //GlobalFilters.Filters.Add(container.Resolve<LogMvcActionAttribute>()); //GlobalConfiguration.Configuration.Filters.Add(container.Resolve<LogWebApiActionAttribute>()); }
public void ConfigureContainerBuilder(bool writeLogsToTestOutput = false, bool writeLogsToFile = false, bool logDotNettyTraffic = false) { SocketPortHelper.AlterConfigurationToGetUniquePort(ConfigurationRoot); var configurationModule = new ConfigurationModule(ConfigurationRoot); ContainerBuilder.RegisterModule(configurationModule); ContainerBuilder.RegisterModule(new CoreLibProvider()); ContainerBuilder.RegisterInstance(ConfigurationRoot).As <IConfigurationRoot>(); var repoFactory = RepositoryFactory.BuildSharpRepositoryConfiguation( ConfigurationRoot.GetSection("CatalystNodeConfiguration:PersistenceConfiguration")); ContainerBuilder.RegisterSharpRepository(repoFactory); var passwordReader = new TestPasswordReader(); ContainerBuilder.RegisterInstance(passwordReader).As <IPasswordReader>(); var certificateStore = new TestCertificateStore(); ContainerBuilder.RegisterInstance(certificateStore).As <ICertificateStore>(); ContainerBuilder.RegisterInstance(_fileSystem).As <IFileSystem>(); var keyRegistry = TestKeyRegistry.MockKeyRegistry(); ContainerBuilder.RegisterInstance(keyRegistry).As <IKeyRegistry>(); ContainerBuilder.RegisterModule(new DfsModule()); ContainerBuilder.RegisterModule(new BulletProofsModule()); ContainerBuilder.RegisterModule(new KeystoreModule()); ContainerBuilder.RegisterModule(new KeySignerModule()); ContainerBuilder.RegisterModule(new HashingModule()); ConfigureLogging(writeLogsToTestOutput, writeLogsToFile, logDotNettyTraffic); }
/// <summary> /// ×¢²á·þÎñºÍ½Ó¿Ú /// </summary> /// <param name="builder">Container builder</param> /// <param name="typeFinder">Type finder</param> public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder) { var config = new ConfigurationBuilder(); config.AddJsonFile("autofac.json"); // Register the ConfigurationModule with Autofac. var module = new ConfigurationModule(config.Build()); builder.RegisterModule(module); // Ìí¼ÓÀ¹½ØÆ÷ var assemblies = typeFinder.GetAssemblies().Where(s => s.FullName.StartsWith("NGP.Foundation.")).ToArray(); builder.RegisterType <ExceptionInterceptionHandler>().InstancePerLifetimeScope(); builder.RegisterType <TransactionInterceptorHandler>().InstancePerLifetimeScope(); builder.RegisterAssemblyTypes(assemblies) .Where(s => s.Name.EndsWith("Service")) .AsImplementedInterfaces() .EnableInterfaceInterceptors() .InterceptedBy(typeof(ExceptionInterceptionHandler), typeof(TransactionInterceptorHandler)); }
static async Task Main(string[] args) { var builder = new ContainerBuilder(); var config = new ConfigurationBuilder().Build(); var module = new ConfigurationModule(config); builder.RegisterModule(module); var services = new ServiceCollection(); services.AddScoped <IPipeFactory <TransformTextPipeModel>, TransformTextPipeFactory>(); services.AddScoped(typeof(IPipeService <>), typeof(PipeService <>)); services.AddScoped <IModifyTextService, ModifyTextService>(); builder.Populate(services); var container = builder.Build(); try { using (var scope = container.BeginLifetimeScope()) { var modifyTextService = scope.Resolve <IModifyTextService>(); var textToBeTransformed = " piPeliNe pattern "; var transformedText = await modifyTextService.TransformTextAsync(textToBeTransformed); Console.WriteLine(textToBeTransformed); Console.WriteLine(transformedText); } } catch (Exception ex) { Console.WriteLine($"Error occured: {ex.Message}. SendEmailNotificationErrorStep was executed."); } Console.ReadLine(); }
// This method gets called by the runtime. Use this method to add services to the container. public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddHttpContextAccessor(); services.AddAutoMapper(); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); // Create the container builder. var builder = new ContainerBuilder(); builder.Populate(services); var config = new ConfigurationBuilder(); config.AddJsonFile("autofac.json"); var module = new ConfigurationModule(config.Build()); builder.RegisterInstance(Configuration); builder.RegisterModule(module); Container = builder.Build(); //services.AddCors(options => //{ // options.AddPolicy("AllowAll", // x => // { // x // .AllowAnyOrigin() // .AllowAnyMethod() // .AllowAnyHeader(); // }); //}); // Create the IServiceProvider based on the container. return(new AutofacServiceProvider(Container)); }
// This method gets called by the runtime. Use this method to add services to the container. public IServiceProvider ConfigureServices(IServiceCollection services) { services.Configure <CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); //services.AddDbContext<AccountContext>(options => // options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), db => db.UseRowNumberForPaging())); //services.AddDbContext<AccountContext>(options => // options.UseMySql(Configuration.GetConnectionString("DefaultConnection"))); services.AddDbContextPool <AccountContext>( // replace "YourDbContext" with the class name of your DbContext options => options.UseMySql(Configuration.GetConnectionString("DefaultConnection"), // replace with your Connection String mysqlOptions => { mysqlOptions.ServerVersion(new Version(5, 7, 17), ServerType.MySql); // replace with your Server Version and Type } )); services.AddScoped <DbContext>(provider => provider.GetService <AccountContext>()); services.AddCors(); // Add framework services. services.AddMvc(options => options.Filters.Add(typeof(CustomExceptionFilterAttribute))) .AddJsonOptions(options => options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss") .SetCompatibilityVersion(CompatibilityVersion.Version_2_1); var builder = new ContainerBuilder(); builder.Populate(services); var module = new ConfigurationModule(Configuration); builder.RegisterModule(module); this.Container = builder.Build(); return(new AutofacServiceProvider(this.Container)); }
public ViewModelLocator() { try { var config = new ConfigurationBuilder(); config.AddJsonFile("autofac.json"); var module = new ConfigurationModule(config.Build()); var builder = new ContainerBuilder(); builder.RegisterModule(module); Container = builder.Build(); //var builder = new ContainerBuilder(); //builder.RegisterType<AppViewModel>(); //builder.RegisterType<FirstViewModel>(); //builder.RegisterType<SecondViewModel>(); //builder.RegisterType<ThirdViewModel>(); //builder.RegisterType<MessageService>().As<IMessageService>(); ////builder.RegisterInstance<NavigationService>(new NavigationService()).As<INavigationService>(); //builder.RegisterType<NavigationService>().As<INavigationService>().SingleInstance(); //Container = builder.Build(); navigationService = Container.Resolve <INavigationService>(); appViewModel = Container.Resolve <AppViewModel>(); firstViewModel = Container.Resolve <FirstViewModel>(); secondViewModel = Container.Resolve <SecondViewModel>(); thirdViewModel = Container.Resolve <ThirdViewModel>(); navigationService.Register <FirstViewModel>(firstViewModel); navigationService.Register <SecondViewModel>(secondViewModel); navigationService.Register <ThirdViewModel>(thirdViewModel); navigationService.Navigate <FirstViewModel>(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); var builder = new ContainerBuilder(); #region 注册 ,通过config文件进行注册 var config = new ConfigurationBuilder(); config.AddJsonFile("autofac.json"); // Register the ConfigurationModule with Autofac. var module = new ConfigurationModule(config.Build()); builder.RegisterModule(module); #endregion #region 通过.net Core DI进行注册 var serviceCollection = new ServiceCollection(); serviceCollection.AddLogging(); builder.Populate(serviceCollection); #endregion var container = builder.Build(); var serviceProvider = new AutofacServiceProvider(container); { //@@测试 Scanfer using (var scope = container.BeginLifetimeScope()) { var component = scope.Resolve <ILog>(); component.LogInfo("a"); } } }
public static void Register(this ContainerBuilder builder, IConfiguration configuration, bool loadproducts = true, bool loadconsumers = true, params string[] intern) { var modules = new List <(bool, string)> { (true, "autofac.json") }; if (loadproducts) { modules.Add((true, "autofac.products.json")); } if (loadconsumers) { modules.Add((true, "autofac.consumers.json")); } if (intern != null) { modules.AddRange(intern.Select(r => (false, r))); } foreach (var p in modules) { var config = new ConfigurationBuilder(); if (p.Item1) { config.SetBasePath(configuration["pathToConf"]); } config.AddJsonFile(p.Item2); var root = config.Build(); var module = new ConfigurationModule(root); builder.RegisterModule(module); } return; }
static void Main(string[] args) { var configBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("config.json"); var configuration = configBuilder.Build(); var containerBuilder = new ContainerBuilder(); var configModule = new ConfigurationModule(configuration); containerBuilder.RegisterModule(configModule); using (var container = containerBuilder.Build()) { float a = 3, b = 4; foreach (IOperation op in container.Resolve <IList <IOperation> >()) { Console.WriteLine($"Result: {op.Calculate(a, b)}"); } } Console.ReadKey(); }
// This method gets called by the runtime. Use this method to add services to the container. public IServiceProvider ConfigureServices(IServiceCollection services) { ICoreServiceBuilder coreServiceBuilder = new CoreServiceBuilder(services, _configuration); coreServiceBuilder.AddDbcontext(); coreServiceBuilder.AddAppService(); coreServiceBuilder.AddFluentValidationService(); coreServiceBuilder.AddMvcExtensions(); coreServiceBuilder.AddSwaggerGenerator(); coreServiceBuilder.AddCors(); coreServiceBuilder.AddAutoMapper(); coreServiceBuilder.AddMiniProfiler(); coreServiceBuilder.AddJwtAuth(); var builder = new ContainerBuilder(); builder.Populate(services); var module = new ConfigurationModule(_configuration); builder.RegisterModule(module); Autofac.IContainer Container = builder.Build(); return(new AutofacServiceProvider(Container)); }
public void MapsPropertyWithEnvironmentVariablesWhenPropertyValueMatchesEnvironmentVariable() { var builder = new ContainerBuilder(); var config = new EnvironmentValuesWithoutAttributes(); var resolver = new InstanceResolver(config); var expectedString = Guid.NewGuid().ToString(); Environment.SetEnvironmentVariable(config.StringData, expectedString); var sut = new ConfigurationModule(resolver); builder.RegisterModule(sut); var container = builder.Build(); // There are several registrations which aren't expected because of Uri properties being resolved container.ComponentRegistry.Registrations.Should().HaveCount(DefaultRegistrationCount + 1); container.Should().HaveRegistered <EnvironmentValuesWithoutAttributes>(); var actual = container.Resolve <EnvironmentValuesWithoutAttributes>(); actual.StringData.Should().Be(expectedString); }
protected ContainerBuilder ConfigureContainer(string configFileBaseName) { var fileName = string.Format( "{0}\\ContainerConfig\\{1}", AppDomain.CurrentDomain.BaseDirectory, configFileBaseName); if (!File.Exists(fileName)) { return(_containerBuilder); } //var csr = new ConfigurationSettingsReader(SectionHandler.DefaultSectionName, fileName); //cb.RegisterModule(csr); var config = new ConfigurationBuilder(); config.AddXmlFile(fileName); var module = new ConfigurationModule(config.Build()); _containerBuilder.RegisterModule(module); return(_containerBuilder); }
public static AutofacServiceProvider Configure(this IServiceCollection services, string connectionString, IConfigurationRoot configuration) { services.AddDbContext <MyContext>(options => options.UseSqlServer(connectionString)); //注入 DependencyInjectionService.GetInstance(services) .AddMvc() .AddCookie() .AddSwagger() .AddCors() .AddDddLayering() .AddEventBus() .AddCap(); //.AddIdentityServer(); //Autofac依赖注入 Class的后面名字必须一致才能注入 var builder = new ContainerBuilder(); builder.Populate(services); var module = new ConfigurationModule(configuration); builder.RegisterModule(module); Container = builder.Build(); return(new AutofacServiceProvider(Container)); }
private static void Main(string[] args) { var configurationBuilder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) //.AddJsonFile("config.json"); .AddXmlFile("config.xml"); var config = configurationBuilder.Build(); var builder = new ContainerBuilder(); var configModule = new ConfigurationModule(config); builder.RegisterModule(configModule); var container = builder.Build(); foreach (var op in container.Resolve <IList <IOperation> >()) { float a = 100, b = 54; Console.WriteLine($"{op.GetType().Name} of {a} and {b} = {op.Calculate(a, b)}"); } Console.ReadLine(); }
// This method gets called by the runtime. Use this method to add services to the container. public IServiceProvider ConfigureServices(IServiceCollection services) { //services.AddDbContext<AccountContext>(options => // options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"), db => db.UseRowNumberForPaging())); services.AddDbContext <AccountContext>(options => options.UseMySql(Configuration.GetConnectionString("DefaultConnection"))); services.AddScoped <DbContext>(provider => provider.GetService <AccountContext>()); services.AddCors(); // Add framework services. services.AddMvc(options => options.Filters.Add(typeof(CustomExceptionFilterAttribute))) .AddJsonOptions(options => options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"); var builder = new ContainerBuilder(); builder.Populate(services); var module = new ConfigurationModule(Configuration); builder.RegisterModule(module); this.Container = builder.Build(); return(new AutofacServiceProvider(this.Container)); }
public static void Run([TimerTrigger("0 0 10 * * Mon")] TimerInfo myTimer, ILogger log, ExecutionContext context) { // Sets the settings model defined as static properties in the class. var configModule = new ConfigurationModule(context); var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterModule(configModule); containerBuilder.RegisterModule <RetrospectiveModule>(); containerBuilder.RegisterInstance(log).As <ILogger>(); var container = containerBuilder.Build(); var actorSystem = ActorSystem.Create("retrospective-automation-actor-system"); actorSystem.UseAutofac(container); var retrospectiveManager = actorSystem.ActorOf(actorSystem.DI().Props <RetrospectiveManager>(), "retrospective-manager"); var result = retrospectiveManager.Ask(new StartAnalysisRequest(), TimeSpan.FromMinutes(1)); result.Wait(); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); ContainerBuilder builder = new ContainerBuilder(); //builder.RegisterType<HomeController>(); builder.RegisterControllers(typeof(MvcApplication).Assembly).InstancePerRequest(); builder.RegisterApiControllers(typeof(MvcApplication).Assembly).InstancePerRequest(); //builder.RegisterType<Tester>().As<ITester>().SingleInstance(); //builder.RegisterType<ExtensibilityManager>().As<IExtensibilityManager>().SingleInstance(); //builder.RegisterType<BlogPostRepository>().As<IBlogPostRepository>().WithParameter(new TypedParameter(typeof(string), "easyBlog")); //builder.RegisterModule<RepositoryRegistrationModule>(); IConfigurationBuilder config = new ConfigurationBuilder(); config.AddJsonFile("autofac.json"); ConfigurationModule module = new ConfigurationModule(config.Build()); builder.RegisterModule(module); IContainer container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container); IExtensibilityManager extensibilityManager = container.Resolve <IExtensibilityManager>(); extensibilityManager.GetModuleEvents(); // stores them in state }
public ViewModelLocator() { try { var config = new ConfigurationBuilder(); config.AddJsonFile(Directory.GetParent(Environment.CurrentDirectory).Parent.FullName + "\\autofac.json"); var module = new ConfigurationModule(config.Build()); var builder = new ContainerBuilder(); builder.RegisterModule(module); Container = builder.Build(); navigationService = Container.Resolve <INavigationService>(); appViewModel = Container.Resolve <AppViewModel>(); // SignUpViewModel = Container.Resolve <SignUpPageViewModel>(); LogInViewModel = Container.Resolve <LogInPageViewModel>(); MainViewModel = Container.Resolve <MainPageViewModel>(); NewTripViewModel = Container.Resolve <NewTripPageViewModel>(); ShowPdfViewModel = Container.Resolve <ShowPdfPageViewModel>(); ShowMapViewModel = Container.Resolve <ShowMapPageViewModel>(); ShowGoogleMapViewModel = Container.Resolve <ShowGoogleMapPageViewModel>(); navigationService.Register <LogInPageView>(LogInViewModel); navigationService.Register <SignUpPageView>(SignUpViewModel); navigationService.Register <MainPageView>(MainViewModel); navigationService.Register <NewTripPageView>(NewTripViewModel); navigationService.Register <ShowPdfPageView>(ShowPdfViewModel); navigationService.Register <ShowMapPageView>(ShowMapViewModel); navigationService.Register <ShowGoogleMapPageView>(ShowGoogleMapViewModel); navigationService.Navigate <LogInPageView>(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private static IContainer AutofacConfigure(ContainerBuilder builder, Action <ContainerBuilder> register) { var config = new ConfigurationBuilder(); config.AddJsonFile(PathConfigurationAutofac); var module = new ConfigurationModule(config.Build()); builder.RegisterModule(module); builder.RegisterModule <Moderator.AutofacModule>(); builder.RegisterType <Core>().FindConstructorsWith(new InternalConstructorFinder()).SingleInstance(); builder.RegisterModule(new MessageBusModule(typeof(Core).Assembly)); builder.RegisterAssemblyModules(Assembly.GetExecutingAssembly()); builder.Register(x => JsonConvert.DeserializeObject <Configuration>(File.ReadAllText(Path.Combine(assemblyFolder, "config.json")))) .As <Configuration>().SingleInstance(); builder.Register(x => new NancyHost(x.Resolve <INancyBootstrapper>(), new Uri($"http://{GetLocalIPAddress()}:{x.Resolve<Configuration>().WebApiPort}"))); builder.RegisterType <Moderator.Moderator>().As <IModerator>(); builder.Register(x => new SocketServer($"ws://{GetLocalIPAddress()}:{x.Resolve<Configuration>().WebSocketPort}", x.Resolve <ILifetimeScope>())).As <ISocketServer>(); builder.RegisterType <Aggregator>().AsSelf(); register(builder); return(builder.Build()); }
private static void Main() { var execFolder = Path.GetDirectoryName(typeof(Program).Assembly.Location); AssemblyLoadContext.Default.Resolving += (context, assembly) => context.LoadFromAssemblyPath(Path.Combine(execFolder !, $"{assembly.Name}.dll")); var config = new ConfigurationBuilder() .AddJsonFile("autofac_config.json").Build(); var configModule = new ConfigurationModule(config); var builder = new ContainerBuilder(); builder.RegisterModule(configModule); var container = builder.Build(); using (var scope = container.BeginLifetimeScope()) { var component = scope.Resolve <ComponentA>(); Console.WriteLine("Resolved component type: {0}", component.Name); Console.WriteLine("All available components:"); var allComponents = scope.Resolve <IEnumerable <IComponent> >(); foreach (var resolvedComponent in allComponents) { Console.WriteLine("- {0}", resolvedComponent.Name); } } // exit: Console.ReadKey(); }
public void Start() { _builder = new ContainerBuilder(); _builder.RegisterModule(new FileWatcherModule()); // Add the configuration to the ConfigurationBuilder. var configurationBuilder = new ConfigurationBuilder(); configurationBuilder.AddXmlFile("FileWatcher.xml"); // Register the ConfigurationModule with Autofac. var module = new ConfigurationModule(configurationBuilder.Build()); _builder.RegisterModule(module); container = _builder.Build(); var king = container.Resolve <IFileWather>(); king.StartProcessing(); _logger.Info("Запуск успешно завершен."); }