コード例 #1
0
        private static IIocContainer GetContainer(ITeclynConfiguration configuration)
        {
            var ioc = configuration.IocContainer;

            if (ioc == null)
            {
                ioc = new BasicIocContainer();
            }

            return(ioc);
        }
コード例 #2
0
        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
        }
コード例 #3
0
        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();
        }
コード例 #4
0
 private void Fill(ITeclynConfiguration configuration)
 {
     this.Debug = configuration.Debug;
     this.RegisterSpecialServices(configuration);
 }