Пример #1
0
 public override IViewModel Create <T1, T2, T3>(IDependencyContainer container, T1 param1, T2 param2, T3 param3)
 {
     container.RegisterInstance <T1>(param1);
     container.RegisterInstance <T2>(param2);
     container.RegisterInstance <T3>(param3);
     return(Layouts.LayoutActivator.Activate(LayoutItem, container));
 }
 public override IViewModel Create <T1, T2>(IDependencyContainer container, T1 param1, T2 param2)
 {
     ForceClose();
     container.RegisterInstance <T1>(param1);
     container.RegisterInstance <T2>(param2);
     return(CreateInternal(container));
 }
Пример #3
0
        public void Register(IDependencyContainer container, IDependencyResolver resolver)
        {
            container.RegisterType <IConfiguration, YamlConfiguration>("yaml", null);
            container.RegisterType <IConfiguration, JsonConfiguration>("json");
            container.RegisterType <IConfiguration, XmlConfiguration>("xml");

            container.RegisterSingletonType <IRocketConfigurationProvider, RocketConfigurationProvider>();

            container.RegisterSingletonType <ILogger, ConsoleLogger>("console_logger");
            container.RegisterSingletonType <ILogger, LoggerProxy>("proxy_logger", null);

            container.RegisterSingletonType <IEventBus, EventBus>();

            container.RegisterSingletonType <ICommandHandler, DefaultCommandHandler>("default_cmdhandler");
            container.RegisterSingletonType <ICommandHandler, CommandHandlerProxy>("proxy_cmdhandler", null);

            container.RegisterSingletonType <IPluginLoader, DefaultClrPluginLoader>("dll_plugins");
            container.RegisterSingletonType <IPluginLoader, NuGetPluginLoader>("nuget_plugins");
            container.RegisterSingletonType <IPluginLoader, PluginLoaderProxy>("proxy_plugins", null);

            container.RegisterSingletonType <ICommandProvider, RocketCommandProvider>("rocket_cmdprovider");
            container.RegisterSingletonType <ICommandProvider, CommandProviderProxy>("proxy_cmdprovider", null);

            var configPermissions = container.Activate <ConfigurationPermissionProvider>();

            container.RegisterInstance <IPermissionProvider>(configPermissions, "default_permissions", null);
            container.RegisterInstance <IPermissionChecker>(configPermissions, "default_permissions");

            container.RegisterSingletonType <IPermissionChecker, ConsolePermissionChecker>("console_checker");
            container.RegisterSingletonType <IPermissionChecker, PermissionProviderProxy>("proxy_checker", null);

            container.RegisterType <ITranslationCollection, TranslationCollection>();
            container.RegisterSingletonType <IUserManager, UserManagerProxy>();
        }
Пример #4
0
        public TViewModel Create <TViewModel, T1, T2>(T1 param1, T2 param2) where TViewModel : IViewModel
        {
            IDependencyContainer childContainer = _container.CreateChildContainer();

            childContainer.RegisterInstance <T1>(param1);
            childContainer.RegisterInstance <T2>(param2);
            return(childContainer.Resolve <TViewModel>());
        }
Пример #5
0
 /// <summary>
 /// Create all dependencies
 /// </summary>
 protected virtual void BuildDependencies(IDependencyContainer container)
 {
     // Register default type
     container.RegisterInstance(this);
     container.RegisterInstance <IStreamProvider>(this);
     container.RegisterInstance <ITracer>(this);
     container.RegisterInstance <IDependencyContainer>(container);
     // Register engines types
     container.Register <SweDate, SweDate>();
     container.Register <SwePlanet, SwePlanet>();
 }
Пример #6
0
        public static IDryvBuilder Configure(IDependencyContainer container, Action <DryvOptions> setupAction = null)
        {
            if (container == null)
            {
                throw new ArgumentNullException(nameof(container));
            }

            ModelValidatorProviders.Providers.Add(new DryvModelValidatorProvider());

            var options = new DryvOptions();

            setupAction?.Invoke(options);

            container.RegisterSingleton(typeof(IDryvClientModelValidator), typeof(DryvClientModelValidator));
            container.RegisterSingleton(typeof(ITranslator), typeof(JavaScriptTranslator));
            container.RegisterSingleton(typeof(ITranslatorProvider), typeof(TranslatorProvider));
            container.RegisterInstance(typeof(DryvOptions), options);

            return(new DryvBuilder(container)
                   .AddTranslator <ObjectTranslator>()
                   .AddTranslator <DryvResultTranslator>()
                   .AddTranslator <StringTranslator>()
                   .AddTranslator <EnumerableTranslator>()
                   .AddTranslator <RegexTranslator>());
        }
Пример #7
0
 public void Initialize(IDependencyContainer container)
 {
     container
     .RegisterInstance <IWorkItemCommandFactory>(new  HotelWorkItemCommandFactory(), typeof(HotelWorkItem).Name)
     .RegisterInstance <IWorkItemCommandFactory>(new MasterWorkItemCommandFactory(), typeof(MasterWorkItem).Name)
     ;
 }
Пример #8
0
 public void Initialize(IDependencyContainer container)
 {
     container
     .RegisterInstance <ISyncDb>(new SyncDb())
     .RegisterInstance <IHotelWorkItemDb>(new WorkItemDb())
     ;
 }
Пример #9
0
        public TViewModel Create <TViewModel, T>(T param) where TViewModel : IViewModel
        {
            IDependencyContainer childContainer = _container.CreateChildContainer();

            childContainer.RegisterInstance <T>(param);
            return(childContainer.Resolve <TViewModel>());
        }
Пример #10
0
 protected virtual void ConfigureContainer(IDependencyContainer container)
 {
     container.RegisterType <IBootstrapperEnvironment, BootstrapperEnvironment>(true);
     container.RegisterType <ApplicationViewModel, ApplicationViewModel>(true);
     container.RegisterType <IWindowManager, WindowManager>(true);
     container.RegisterType <IViewModelManager, ViewModelManager>(true);
     container.RegisterInstance <ILayoutProvider>(CreateLayoutProvider());
 }
Пример #11
0
 public void InitializeContainer(IDependencyContainer container)
 {
     container
         .Register<IHttpConnector, HttpConnector>(() => new HttpConnector())
         .Register<IHttpFileHandler, WebClientHttpFileHandler>(() => new WebClientHttpFileHandler())
         .RegisterInstance<ILocalStorage, IsolatedLocalStorage>("wp8", IsolatedLocalStorage.Instance)
         .RegisterInstance<ITraceWriter, DebugTraceWriter>(new DebugTraceWriter());
         ;
     var deviceState = new WPDeviceState(
         container.Build<ILocalStorage>("wp8"),
         container.Build<IJsonSerializer>());
     container.RegisterInstance<IDeviceState, WPDeviceState>("wp8", deviceState);
     var appState = new WPApplicationState(
         container.Build<ILocalStorage>("wp8"),
         container.Build<IJsonSerializer>());
     container.RegisterInstance<IApplicationState, WPApplicationState>("wp8", appState);
 }
Пример #12
0
        public void InitializeContainer(IDependencyContainer container)
        {
            container
            .Register <IHttpConnector, HttpConnector>(() => new HttpConnector())
            .Register <IHttpFileHandler, WebClientHttpFileHandler>(() => new WebClientHttpFileHandler())
            .RegisterInstance <ILocalStorage, IsolatedLocalStorage>("wp7", IsolatedLocalStorage.Instance)
            .RegisterInstance <ITraceWriter, DebugTraceWriter>(new DebugTraceWriter());
            ;
            var deviceState = new WPDeviceState(
                container.Build <ILocalStorage>("wp7"),
                container.Build <IJsonSerializer>());

            container.RegisterInstance <IDeviceState, WPDeviceState>("wp7", deviceState);
            var appState = new WPApplicationState(
                container.Build <ILocalStorage>("wp7"),
                container.Build <IJsonSerializer>());

            container.RegisterInstance <IApplicationState, WPApplicationState>("wp7", appState);
        }
Пример #13
0
        public static IDependencyContainer RegisterRepository(this IDependencyContainer container, Action <DbContextOptionsBuilder> optionsAction)
        {
            var options = new DbContextOptionsBuilder <CNCLibContext>();

            optionsAction(options);

            container.RegisterInstance <DbContextOptions <CNCLibContext> >(options.Options);
            container.RegisterTypeScoped <CNCLibContext, CNCLibContext>();
            container.RegisterTypeScoped <IUnitOfWork, UnitOfWork <CNCLibContext> >();

            container.RegisterTypesIncludingInternals(DependencyLivetime.Transient, typeof(Repository.MachineRepository).Assembly);
            return(container);
        }
        public static IDependencyContainer RegisterCNCLibWpf(this IDependencyContainer container)
        {
            container.RegisterInstance(new Global())
            .RegisterType <IJoystickService, JoystickService>()
            .RegisterType <IFactory <IMachineService>, FactoryResolve <IMachineService> >()
            .RegisterType <IFactory <ILoadOptionsService>, FactoryResolve <ILoadOptionsService> >()
            .RegisterType <IFactory <IJoystickService>, FactoryResolve <IJoystickService> >()
            .RegisterType <IFactory <IUserService>, FactoryResolve <IUserService> >()
            .RegisterTypesByName(
                n => n.EndsWith("ViewModel"),
                DependencyLivetime.Transient,
                typeof(ViewModels.MachineViewModel).Assembly,
                typeof(GCode.GUI.ViewModels.LoadOptionViewModel).Assembly);

            return(container);
        }
Пример #15
0
 public override void InitializeContainer(IDependencyContainer container)
 {
     base.InitializeContainer(container);
     container.RegisterInstance <ISession, SessionCleanupProxy>(new SessionCleanupProxy(new InProcSession(), new TimeSpan(0, 5, 0), new TimeSpan(0, 30, 0)));
 }
Пример #16
0
 public override void InitializeContainer(IDependencyContainer container)
 {
     base.InitializeContainer(container);
     container.RegisterInstance<ISession, SessionCleanupProxy>(new SessionCleanupProxy(new InProcSession(), new TimeSpan(0,5,0), new TimeSpan(0,30,0)));
 }
Пример #17
0
 public override IViewModel Create <T>(IDependencyContainer container, T param)
 {
     container.RegisterInstance <T>(param);
     return(Layouts.LayoutActivator.Activate(LayoutItem, container));
 }
Пример #18
0
 /// <summary>
 /// Registers the given object for the interface.
 /// </summary>
 /// <typeparam name="TInterface">Interface that can be later resolved.</typeparam>
 /// <param name="container"></param>
 /// <param name="obj">Object that should be returned for Resolve&lt;TInterface&gt;() calls.</param>
 /// <returns>This instance.</returns>
 public static IDependencyContainer RegisterInstance <TInterface>(this IDependencyContainer container, TInterface obj)
 {
     container.RegisterInstance(typeof(TInterface), obj);
     return(container);
 }
Пример #19
0
        protected virtual IPlugin LoadPluginFromAssembly(Assembly pluginAssembly, out IDependencyContainer childContainer)
        {
            childContainer = null;

            string loc = GetAssemblyLocationSafe(pluginAssembly);

            if (!string.IsNullOrEmpty(loc) &&
                !cachedAssemblies.ContainsKey(loc))
            {
                cachedAssemblies.Add(loc, pluginAssembly);
            }

            Type[] types;
            try
            {
                types = pluginAssembly.GetTypes();
            }
            catch (ReflectionTypeLoadException e)
            {
                types = e.Types;
            }

            Type pluginType = null;

            foreach (Type type in types.Where(t => t != null))
            {
                if (type.IsAbstract || type.IsInterface)
                {
                    continue;
                }

                if (type.GetCustomAttributes(typeof(DontAutoRegisterAttribute), true).Any())
                {
                    continue;
                }

                if (pluginType == null && typeof(IPlugin) != type && typeof(IPlugin).IsAssignableFrom(type))
                {
                    pluginType = type;
                }
            }

            if (pluginType == null)
            {
                return(null);
            }

            childContainer = Container.CreateChildContainer();
            childContainer.RegisterInstance <IPluginManager>(this);

            IPlugin pluginInstance = (IPlugin)childContainer.Activate(pluginType);

            if (pluginInstance == null)
            {
                throw new Exception("Failed to activate: " + pluginType.FullName + ". Is your plugin constructor public?");
            }

            Container.RegisterInstance(pluginInstance, pluginInstance.Name);

            childContainer.RegisterInstance(pluginInstance);

            IEnumerable <Type> pluginCommands =
                pluginInstance.FindTypes <ICommand>(false, c => !typeof(IChildCommand).IsAssignableFrom(c) &&
                                                    c.GetCustomAttributes(typeof(DontAutoRegisterAttribute), true).Length == 0);
            IEnumerable <Type> dependencyRegistrators = pluginInstance.FindTypes <IDependencyRegistrator>(false);

            foreach (Type registrator in dependencyRegistrators)
            {
                ((IDependencyRegistrator)Activator.CreateInstance(registrator)).Register(Container, Container);
            }

            foreach (Type command in pluginCommands)
            {
                try
                {
                    ICommand cmdInstance = (ICommand)childContainer.Activate(command);
                    if (cmdInstance != null)
                    {
                        childContainer.RegisterSingletonInstance(cmdInstance, cmdInstance.Name);
                    }
                }
                catch (Exception ex)
                {
                    Logger.LogError(null, ex);
                }
            }

            return(pluginInstance);
        }
Пример #20
0
 public static IDependencyContainer RegisterInstance <T>(this IDependencyContainer container, T instance, string key)
 {
     return(container.RegisterInstance(typeof(T), instance, key));
 }
 public static void RegisterInstance <T>(this IDependencyContainer container, object instance)
 {
     container.RegisterInstance(typeof(T), instance);
 }
Пример #22
0
 /// <summary>
 /// Registers the mocks.
 /// </summary>
 /// <param name="mockContainer">The mock container.</param>
 public override void RegisterMocks(IDependencyContainer mockContainer)
 {
     mockContainer.RegisterInstance <ModuleTitle>("Sample-ModuleTitle", ModuleTitleMockHelper.GetMockModuleTitle());
 }