private static IIocContainer GetContainer(ITeclynConfiguration configuration) { var ioc = configuration.IocContainer; if (ioc == null) { ioc = new BasicIocContainer(); } return(ioc); }
private void RegisterSpecialServices(ITeclynConfiguration configuration) { // service registration this.iocContainer.Register(this.iocContainer); this.iocContainer.RegisterSingleton <RepositoryService>(); this.iocContainer.Register <ITeclynContext, TeclynContext>(); this.iocContainer.Register <IStorageConfiguration>(configuration.StorageConfiguration ?? new BasicStorageConfiguration()); this.iocContainer.RegisterSingleton <IEventHandlerService, EventHandlerService>(); this.iocContainer.RegisterSingleton <MetadataRepository>(); // configuration analysis this.repositories = this.iocContainer.Get <RepositoryService>(); this.repositories.Register(typeof(IEventInformation), typeof(EventInformation), "Event", null, null); this.ComputeAttributes(this.ScannedAssemblies); // computing based on the analyzed data }
public TeclynApi(ITeclynConfiguration configuration, params Assembly[] assemblies) { this.Plugins = configuration.Plugins.ToList(); this.ScannedAssemblies = assemblies.Union(this.Plugins.Select(plugin => plugin.GetType().GetTypeInfo().Assembly).ToList()); this.iocContainer = GetContainer(configuration); this.iocContainer.Initialize(this.ScannedAssemblies); this.iocContainer.Register(this.iocContainer); this.iocContainer.Register(this); this.Fill(configuration); foreach (var plugin in this.Plugins) { plugin.Initialize(this); } this.iocContainer.Get <IBackgroundThreadManager>()?.Start(); }
private void Fill(ITeclynConfiguration configuration) { this.Debug = configuration.Debug; this.RegisterSpecialServices(configuration); }