protected override ContainerFor <T> CreateSut <T>() { var container = new AutofacContainer(); container.Register <IDependency1, Dependency1>(); container.Register <IDependency2, Dependency2>(); container.Register <ConcreteObjectWithMultipleConstructors>(); container.Register <ConcreteObjectWithNoConstructor>(); return(new ContainerFor <T>(container)); }
/// <summary> /// 注册依赖注入 /// </summary> /// <param name="app">IApplicationBuilder</param> /// <returns></returns> public static IApplicationBuilder UseAutofacExtensions(this IApplicationBuilder app) { var autofacRoot = app.ApplicationServices.GetAutofacRoot(); AutofacContainer.Register(autofacRoot); return(app); }
public static void Init() { //依赖注入注册 AutofacContainer.Register(); //Es配置 const string localEsSettingJson = "{ \"EsHttpAddress\": \"http://192.168.0.221:9200/\", \"UserName\": \"\", \"Password\": \"\", \"EsDefaultIndex\": \"\", \"EsConnectionLimit\": 80 }"; var localEsSetting = JsonConvert.DeserializeObject <ElasticSearchSetting>(localEsSettingJson); ElasticSearchConfig.ElasticSearchSetting = localEsSetting; //获取对象 //testUserInfoDataSource = AutofacContainer.Current.Resolve<ITestUserInfoDataSource>(); var userInfo = new TestUserInfo { UserName = "******", Password = "******", Age = 15, Description = "mydescription" }; Parallel.For(0, 1, (i) => { Thread t = new Thread(new ParameterizedThreadStart(Save)); userInfo.Age = i; userInfo.Id = Guid.NewGuid().ToString("N"); t.Start(userInfo); Console.WriteLine($"线程{i}!"); }); Console.WriteLine("完成!"); Console.ReadKey(); }
/// <summary> /// 初始化Ioc容器 /// </summary> /// <param name="services"></param> /// <returns></returns> private IServiceProvider InitIoc(IServiceCollection services) { var connectionString = Configuration.GetConnectionString("MsSqlServer"); //var connectionString = Configuration.GetConnectionString("MySql"); var dbContextOption = new DbContextOption { ConnectionString = connectionString, DbType = DbTypeEnum.MSSQLSERVER, //DbType = DbTypeEnum.MYSQL, ModelAssemblyName = "Ses.AspNetCore.Entities", }; //var codeGenerateOption = new CodeGenerateOption //{ // ModelsNamespace = "Zxw.Framework.Website.Models", // IRepositoriesNamespace = "Zxw.Framework.Website.IRepositories", // RepositoriesNamespace = "Zxw.Framework.Website.Repositories", // IServicsNamespace = "Zxw.Framework.Website.IServices", // ServicesNamespace = "Zxw.Framework.Website.Services" //}; AutofacContainer.Register(Configuration); //注册配置 AutofacContainer.Register(dbContextOption); //注册数据库配置信息 //AutofacContainer.Register(codeGenerateOption);//注册代码生成器相关配置信息 AutofacContainer.Register(typeof(DefaultDbContext)); //注册EF上下文 AutofacContainer.RegisterGeneric(typeof(IRepository <,>), typeof(BaseRepository <,>)); AutofacContainer.RegisterGeneric(typeof(IBaseService <,>), typeof(BaseService <,>)); AutofacContainer.Register("Ses.AspNetCore.Services", "Ses.AspNetCore.IServices");//注册service return(AutofacContainer.Build(services)); }
private static void RegisterServices() { var builder = new ContainerBuilder(); var container = new AutofacContainer(builder.Build()); //Allow native to register OnContainerSet?.Invoke(container); //register PCL Services container.Register <IWebService, WebService>(); container.Register <IDependencyContainer>(container); //Set global resolver if (!Resolver.IsSet) { Resolver.SetResolver(container.GetResolver()); } }
static void Main(string[] args) { var builder = new HostBuilder() .ConfigureAppConfiguration((hostContext, config) => { config.SetBasePath(Directory.GetCurrentDirectory()); config.AddJsonFile("Config.json", optional: true); }) .ConfigureServices((hostContext, services) => { services.AddSingleton <IHostLifetime, OwnLifetime>(); services.AddHostedService <HttpServerHosted>(); AutofacContainer.Register("Api.Services", "Api.IService"); AutofacContainer.SetCodeFirstAsync("Api.Models"); //使用codefirst AutofacContainer.Build(services); //使用ioc注入 }) .ConfigureLogging((hostingContext, logging) => { logging.AddEventLog(); //启用系统事件日志, logging.AddDebug(); logging.AddConsole(); logging.AddEventSourceLogger(); }); //builder.Build().Run(); HostFactory.Run(x => { //服务名称 x.SetServiceName("ApiService"); //服务展示名称 x.SetDisplayName("ApiService"); //服务描述 x.SetDescription("Api服务"); //服务启动类型:自动 x.StartAutomatically(); //x.RunAsLocalSystem(); x.Service <IHost>(s => { s.ConstructUsing(() => builder.Build()); s.WhenStarted(service => { service.Start(); }); s.WhenStopped(service => { service.StopAsync(); }); }); }); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); AutofacContainer.Register(); Mapper.Initialize(cfg => { AutoMapperConfig.Configure(cfg); }); }
/// <summary> /// Sets Inversion of Control. /// </summary> private void SetIoC() { var nativeApplication = new XFormsApp <Application>(); nativeApplication.Init(this); var containerBuilder = new ContainerBuilder(); containerBuilder.Register(c => WindowsPhoneDevice.CurrentDevice).As <IDevice>(); containerBuilder.Register(c => nativeApplication).As <IXFormsApp>(); Core.App.RegisterCoreComponents(containerBuilder); var autofacContainer = new AutofacContainer(containerBuilder.Build()); autofacContainer.Register <IDependencyContainer>(autofacContainer); Resolver.SetResolver(autofacContainer.GetResolver()); }
private void InitializeResolver() { var builder = new ContainerBuilder(); var autofacContainer = builder.AutoRegisterMvvmComponents(typeof(App).GetTypeInfo().Assembly) .Finish(); // That container will use XLabs for resolver var container = new AutofacContainer(autofacContainer); //Here we can register PCL services container.Register <IDependencyContainer>(container); // And now, we will set resolver if (!Resolver.IsSet) { Resolver.SetResolver(container.GetResolver()); } }
/// <summary> /// Sets the IoC. /// </summary> private void SetIoc() { var nativeApplication = new XFormsApp <XFormsApplicationDroid>(); nativeApplication.Init(this); var containerBuilder = new ContainerBuilder(); containerBuilder.Register(c => AndroidDevice.CurrentDevice).As <IDevice>(); containerBuilder.Register(c => nativeApplication).As <IXFormsApp>(); containerBuilder.Register(c => new FileService()).As <IFileService>(); containerBuilder.Register(c => new Id3TagService()).As <IId3TagService>(); containerBuilder.Register(c => new MediaPlayerService()).As <IMediaPlayerService>(); App.RegisterCoreComponents(containerBuilder); var autofacContainer = new AutofacContainer(containerBuilder.Build()); autofacContainer.Register <IDependencyContainer>(autofacContainer); Resolver.SetResolver(autofacContainer.GetResolver()); }
private static void Main(string[] args) { PingHost("mssql", true); var logger = new LoggerConfiguration() .WriteTo.Console() .MinimumLevel.Information() .CreateLogger(); Serilog.Log.Logger = logger; var config = new AkkaSystemManagerConfig() { SystemHoconConfigPath = "configuration.hocon", SystemName = "mySystem" }; AkkaSystemManager mgr = new AkkaSystemManager(config, (ActorSystem system, Akka.Configuration.Config c) => new AutoFacDependencyResolver(AutofacContainer.Register(c), system)); Console.CancelKeyPress += (sender, eventArgs) => { mgr.Stop(); }; mgr.RunActor <AkkaConsumerWrapper>("akkaConsumerWrapper"); mgr.WhenTerminated.Wait(); Console.WriteLine("Progam is exiting"); }