private void LoadFrameworkExtensions(BootstrapInCodeConfiguration configuration) { HandleMessage("Scanne nach Extensions"); var extensionDir = Path.Combine(_assemblyPath, _folderExtensions); if (Directory.Exists(extensionDir)) { StructureMapContainer.Configure(cfg => cfg.Scan(scanner => { scanner.AssembliesFromPath(extensionDir); foreach (var subDir in Directory.GetDirectories(extensionDir)) { scanner.AssembliesFromPath(subDir); } scanner.AddAllTypesOf <IFrameworkExtension>(); })); foreach (var instance in DependencyResolver.GetAllInstances <IFrameworkExtension>()) { HandleMessage("Lade Extension " + instance.Name); instance.Register(configuration, DependencyResolverConfigurator, DependencyResolver); } } }
public void Register(BootstrapInCodeConfiguration configuration, IDependencyResolverConfigurator configurator, IDependencyResolver resolver) { var parameter = new EnvironmentParameter(); var registration = new SingletonRegistration <IEnvironmentParameters>(parameter); configurator.AddRegistration(registration); }
public void Register(BootstrapInCodeConfiguration configuration, IDependencyResolverConfigurator configurator, IDependencyResolver resolver) { //Target.Register<Fluentd.Fluentd>("Fluentd"); configurator.AddRegistration(new SingletonRegistration <ILogManager>(new LogManager())); configurator.AddRegistration(new FactoryRegistration <ILogger, ILogManager>( (factory, context) => factory.GetLogger(context.ParentType))); }
public void Register(BootstrapInCodeConfiguration configuration, IDependencyResolverConfigurator configurator, IDependencyResolver resolver) { var appInsightConfig = TelemetryConfiguration.CreateDefault(); configuration.ConfigureExtensionConfiguration(appInsightConfig); var telemetryClient = new TelemetryClient(appInsightConfig); telemetryClient.TrackTrace("Telemetry started"); var metricRecorder = new TelemetryRecorder(telemetryClient); configurator.AddRegistration(new SingletonRegistration <IMetricRecorder>(metricRecorder)); configurator.AddRegistration(new SingletonRegistration <TelemetryClient>(telemetryClient)); }
protected void Run(string[] args, BootstrapInCodeConfiguration configuration) => HostFactory.Run(x => { x.SetDisplayName(_serviceName); x.SetServiceName(_serviceName); x.UseNLog(); x.Service <ServiceBootstrap>(sc => { sc.ConstructUsing(() => new ServiceBootstrap(configuration)); sc.WhenStarted(s => s.StartingService()); sc.WhenStopped(s => { try { s.StopingService(); } catch (Exception) { } }); }); });
public Bootstrap(BootstrapInCodeConfiguration configuration) { Thread.CurrentThread.Name = "Main"; _messageListener = configuration.MessageListner.FirstOrDefault();; _pluginTypes = configuration.PluginTypes.ToArray();; _folderExtensions = configuration.FolderExtensionPath; _folderPlugins = configuration.PluginPath; _assemblyPath = Path.GetDirectoryName(GetType().Assembly.Location); IntializeIocContainer(); LoadFrameworkExtensions(configuration); Logger = DependencyResolver.GetInstance <ILogManager>().GetLogger(GetType()); AppDomain.CurrentDomain.UnhandledException += (s, e) => { Logger.Error(e.ExceptionObject as Exception, "Unhandled exception occured. Terminating '{0}'", e.IsTerminating); }; var parameter = DependencyResolver.GetInstance <IEnvironmentParameters>(); LogEnvironmentParameter(parameter); }
protected void Run(string[] args, BootstrapInCodeConfiguration configuration) { Console.WriteLine("Start"); var pluginsToLoad = new List <string>(); HostFactory.Run(x => { x.UseNLog(); x.Service <DockerBootstrap>(svc => { svc.ConstructUsing(() => new DockerBootstrap(configuration)); svc.WhenStarted(s => s.StartingService(pluginsToLoad)); svc.WhenStopped(s => s.StopingService()); }); x.AddCommandLineDefinition("plugin", p => pluginsToLoad.Add(p)); x.OnException(e => { Console.WriteLine(e.ToString()); }); }); Console.WriteLine("End"); }
public ServiceBootstrap(BootstrapInCodeConfiguration configuration) : base(configuration.AddPluginType <IServicePlugin>()) { }
public void Register(BootstrapInCodeConfiguration configuration, IDependencyResolverConfigurator configurator, IDependencyResolver resolver) => configurator.AddRegistration(new SingletonRegistration <IEventService, EventService>());
static void Main(string[] args) => new Program().Run(args, BootstrapInCodeConfiguration.Default());
public Start_service_windows() { _bootstrap = new ServiceBootstrap(BootstrapInCodeConfiguration.Default()); }
public static BootstrapInCodeConfiguration ConfigureTelemetry([NotNull] this BootstrapInCodeConfiguration codeConfiguration, Action <TelemetryConfiguration> configurationBuilder) => codeConfiguration.AddExtensionConfiguration(configurationBuilder);