示例#1
0
 /// <summary>
 /// Регистрация репозиториев
 /// </summary>
 public void RegisterRepositories()
 {
     IoCContainer.RegisterSingleton <IAdministratorRepository, AdministratorRepository>();
     IoCContainer.RegisterSingleton <IRegionRepository, RegionRepository>();
     IoCContainer.RegisterSingleton <ICityRepository, CityRepository>();
     IoCContainer.RegisterSingleton <IClientRepository, ClientRepository>();
     IoCContainer.RegisterSingleton <IClientUserRepository, ClientUserRepository>();
     IoCContainer.RegisterSingleton <IRateRepository, RateRepository>();
 }
示例#2
0
        static void Main(string[] args)
        {
            try
            {
                IIoCContainer container = new IoCContainer();
                container.RegisterSingleton <IRandomProvider, RandomProvider>();
                container.RegisterSingleton <ILog, Log>();

                container.Register <IRandomInstance, RandomInstance>();

                for (int i = 0; i < 10; i++)
                {
                    IRandomInstance instance = container.Resolve <IRandomInstance>();
                    instance.Print();
                }
            }
            catch (ResolveException ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.ReadKey();
        }
示例#3
0
        public static void Initialise()
        {
            if (firstPass)
            {
                firstPass = false;

                IoCContainer.RegisterSingleton <ICommunity, Community>();
                IoCContainer.RegisterSingleton <ICommunityViewModel, CommunityViewModel>();
                IoCContainer.RegisterSingleton <DwellerStatisticsViewModel>();
                IoCContainer.RegisterSingleton <ConsoleWindowViewModel>();
                IoCContainer.RegisterSingleton <IDwellerCommandProcessor, DwellerCommandProcessor>();
                IoCContainer.RegisterSingleton <IRandom, BasicRandomGenerator>();

                IoCContainer.RegisterTransient <IDwellerViewModel, BasicDwellerViewModel>();
                IoCContainer.RegisterTransient <IHome, BasicHome>();
                IoCContainer.RegisterTransient <ICafe, BasicCafe>();
                IoCContainer.RegisterTransient <IWorkplace, BasicWorkplace>();

                //IoCContainer.RegisterTransient<IRoamingDweller, RoamingDweller>();
                IoCContainer.RegisterTransient <IRoamingDweller, RoamingDweller>("Normal");
            }
        }
示例#4
0
 /// <summary>
 /// Регистрация служб
 /// </summary>
 public void RegisterServices()
 {
     IoCContainer.RegisterSingleton <IAdministratorService, AdministratorService>();
     IoCContainer.RegisterSingleton <IClientService, ClientService>();
     IoCContainer.RegisterSingleton <IClientUserService, ClientUserService>();
 }
示例#5
0
        /// <summary>
        /// Initializes the application.
        /// </summary>
        private void Initialize()
        {
            if (!IsInitialized)
            {
                lock (mutex) {
                    if (!IsInitialized)
                    {
                        var catalog = new AggregateCatalog();

                        // Register IoC container
                        if (Hooks.App.Init.CreateContainer != null)
                        {
                            IoCContainer = Hooks.App.Init.CreateContainer();
                        }
                        else
                        {
                            IoCContainer = new IoC.TinyIoCContainer();
                        }

                        // Register log provider
                        if (Hooks.App.Init.RegisterLog != null)
                        {
                            Hooks.App.Init.RegisterLog(IoCContainer);
                        }
                        else
                        {
                            IoCContainer.RegisterSingleton <Log.ILogProvider, Log.LocalLogProvider>();
                        }

                        // Regsiter cache provider
                        if (Hooks.App.Init.RegisterCache != null)
                        {
                            Hooks.App.Init.RegisterCache(IoCContainer);
                        }
                        else
                        {
                            IoCContainer.RegisterSingleton <Cache.ICacheProvider, Cache.WebCacheProvider>();
                        }

                        // Register media provider
                        if (Hooks.App.Init.RegisterMedia != null)
                        {
                            Hooks.App.Init.RegisterMedia(IoCContainer);
                        }
                        else
                        {
                            IoCContainer.RegisterSingleton <IO.IMediaProvider, IO.LocalMediaProvider>();
                        }

                        // Register media cache provider
                        if (Hooks.App.Init.RegisterMediaCache != null)
                        {
                            Hooks.App.Init.RegisterMediaCache(IoCContainer);
                        }
                        else
                        {
                            IoCContainer.RegisterSingleton <IO.IMediaCacheProvider, IO.LocalMediaCacheProvider>();
                        }

                        // Register user provider
                        IoCContainer.RegisterSingleton <Security.IUserProvider, Security.LocalUserProvider>();

                        // Register additional types
                        if (Hooks.App.Init.Register != null)
                        {
                            Hooks.App.Init.Register(IoCContainer);
                        }

                        // Compose parts
                        if (HttpContext.Current != null)
                        {
                            catalog.Catalogs.Add(Config.DisableCatalogSearch ? new DirectoryCatalog("Bin", "Piranha*.dll") : new DirectoryCatalog("Bin"));
                        }
                        else
                        {
                            catalog.Catalogs.Add(Config.DisableCatalogSearch ? new DirectoryCatalog(AppDomain.CurrentDomain.BaseDirectory, "Piranha*.dll") : new DirectoryCatalog(AppDomain.CurrentDomain.BaseDirectory));
                        }

                        Container = new CompositionContainer(catalog);
                        Container.ComposeParts(this);

                        // Register default handlers
                        RegisterHandlers();

                        // Create the extension manager
                        ExtensionManager = new Extend.ExtensionManager();

                        // Set application state
                        IsInitialized = true;
                    }
                }
            }
        }