コード例 #1
0
        public void Register(IDIContainer container)
        {
            container.Register <ILocalization, Localization>();
            container.Register(typeof(IRelayCommand <>), typeof(RelayCommand <>));

            Setup(container);
        }
コード例 #2
0
 public DependencyHolder(IDIContainer container, Type dependencyType)
 {
     this.Container       = container;
     this.DependencyType  = dependencyType;
     this.InstanceType    = InstanceType.Static;
     this.LifetimeManager = InstanceLifetimeManager.GetInstanceLifetimeManager(this.Container, DependencyType, this.InstanceType);
 }
コード例 #3
0
        public Task ExecutePostRegistrationStep(IDIContainer container, CancellationToken cancellationToken = default(CancellationToken))
        {
            var config = container.Resolve <IConfiguration>();
            var server = container.Resolve <IServer>();

            server.Location = container.Resolve <ILocation>();

            server.Location.Lat.Point = config.GetValueOrDefault("Server:Location:Lat", 0.0);
            server.Location.Lon.Point = config.GetValueOrDefault("Server:Location:Lon", 0.0);

            if (server.Location.Lat.Point != 0 && server.Location.Lon.Point != 0)
            {
                var ss = container.Resolve <ISunriseSunset>();
                server.Sunrise = ss.GetSunrise(server.Location.Lat.Point, server.Location.Lon.Point);
                server.Sunrset = ss.GetSunset(server.Location.Lat.Point, server.Location.Lon.Point);
            }

            if (container.IsRegistered <IScheduler>())
            {
                var scheduler = container.Resolve <IScheduler>();
                var updateJob = container.Resolve <IUpdateServerPropertiesJob>();
                var cron      = container.Resolve <ICronExpressions>();

                scheduler.RecurringJobAddOrUpdate(() => updateJob.UpdateServerProperties(), cron.Daily(12), TimeZoneInfo.Local);
            }
            return(Task.CompletedTask);
        }
コード例 #4
0
 public static void Populate(this IDIContainer container, IServiceCollection services)
 {
     foreach (var service in services)
     {
         container.AddService(service);
     }
 }
コード例 #5
0
        public DashboardViewModel(IDIContainer container, IAuthorizationManager authManager, INavigationService navigationService, ILocationHelper locationHelper, ILog log)
        {
            _authManager       = authManager;
            _navigationService = navigationService;
            _locationHelper    = locationHelper;
            _log = log;

            Client.Me().ContinueWith(t => { Me = t.Result.Response; });
            Client.Vehicles().ContinueWith(t =>
            {
                foreach (var v in t?.Result?.Response?.Data)
                {
                    OnNext(v);
                }
            });

            _vehicleObservable = Client.WatchVehicles();
            _vehicleObservable.Subscribe(this);

            LogoutCommand = container.Resolve <IRelayCommand <object> >();

            LogoutCommand.ExecuteAction = async b =>
            {
                await authManager.Logout();

                _navigationService.Navigate(this, "Logout", null);
            };

            MapZoomLevel = 7;
        }
コード例 #6
0
        static void Main(string[] args)
        {
            IDIContainer di = CreateDI();

            di.Register <IWCFConfigManager>(() => new WCFConfigManager());

            IRemoteOperationHandler roh = new RemoteOperationHandler(di);
            RemoteSideCommunicator  roc = new RemoteSideCommunicator(roh);

            di.Register <IRemoteSideCommunicationContract>(() => roc);
            di.Register <IRemoteSideCommunicationHandler>(() => roc);

            WCFServiceClientFactory factory = new WCFServiceClientFactory(di);
            var rs = factory.CreateInstance();

            System.Console.WriteLine("Client started!");
            System.Console.WriteLine("Press Enter to call server side Add method.");
            System.Console.ReadLine();

            RemoteOperationDescriptor rod = new RemoteOperationDescriptor(typeof(ICalc).AssemblyQualifiedName, "Add", 1, 2);
            int sum = roc.ExecuteOnRemoteSide <int>(rs.ID, rod);

            System.Console.WriteLine("Add(1,2) = {0}", sum);
            System.Console.WriteLine("Press Enter to stop service client!");
            System.Console.ReadLine();
        }
コード例 #7
0
 private void RegisterJobs(IDIContainer container)
 {
     container.Register <ILoggingJob, LoggingJob>();
     container.Register <LoggingJob, LoggingJob>();
     container.Register <IUpdateServerPropertiesJob, UpdateServerPropertiesJob>();
     container.Register <UpdateServerPropertiesJob, UpdateServerPropertiesJob>();
 }
コード例 #8
0
 public async Task Start(IDIContainer container, IDictionary <string, object> environment = null)
 {
     Container = container;
     container.InjectRegistrationModule(
         "NeonTetra.DI.Containers.DefaultDeploymentRegistrationContainer,NeonTetra.DI");
     await ExecutePostRegistrationStep(container);
 }
コード例 #9
0
 protected InstanceLifetimeManager(IDIContainer container, Type type)
 {
     this._type    = type;
     this._factory = InstanceFactory.GetFactory();
     this._autoInjectionStrategy = AutoInjectionStrategy.GetStrategy(AutoInjectionStrategies.FMPCAutoInjection, container, type);
     this.Container = container;
 }
コード例 #10
0
        static IEnumerator <ResolutionStepResult> injectExporters(IDIContainer container, object scope)
        {
            while (true)
            {
                var exporters = CommonUtils.TryOrNull <ICurvesExporterVM[], ServiceIsNotYetAwailableException>(() => instantiate().ToArray());
                if (exporters == null)
                {
                    yield return(ResolutionStepResult.WAITING_FOR_SERVICE);
                }
                else
                {
                    foreach (var exporter in exporters)
                    {
                        container.Register <ICurvesExporterVM>(exporter, scope);
                    }

                    yield return(ResolutionStepResult.RESOLVED);
                }
            }

            IEnumerable <ICurvesExporterVM> instantiate()
            {
                var storage = container.ResolveSingle <IPointsStorageProvider>(scope);

                yield return(new LasCurvesExporterVM(storage));
            }
        }
            public RegisteredTypeContainer(IDIContainer diContainer, Type registeredType, Func <object> getInstanceFunc, List <Type> typesWeAreDependingOn)
            {
                if (diContainer == null)
                {
                    throw new ArgumentNullException("diContainer");
                }
                if (registeredType == null)
                {
                    throw new ArgumentNullException("registeredType");
                }
                if (getInstanceFunc == null)
                {
                    throw new ArgumentNullException("getInstanceFunc");
                }

                this.diContainer     = diContainer;
                this.registeredType  = registeredType;
                this.getInstanceFunc = getInstanceFunc;
                this.unregisteredTypesWeAreDependingOn = typesWeAreDependingOn;

                if (typesWeAreDependingOn != null && typesWeAreDependingOn.Any())
                {
                    diContainer.NewTypesRegistered += diContainer_NewTypesRegistered;
                }
            }
コード例 #12
0
        public void Register(IDIContainer container)
        {
            container.Register <IPage, MainPage>("MainPage");
            container.Register <IPage, Dashboard>("Dashboard");

#if OAUTH
            container.Register <IPage, OAuthLogin>("Login");
#else
            container.Register <IPage, Login>("Login");
#endif

            container.Register <INavigationService, DefaultNavigationService>();
            container.Register <IDispatchService, UniversalDispatchService>();

            container.Register <ILoginViewModel, LoginViewModel>();
            container.Register <IDashboardViewModel, DashboardViewModel>();
            container.Register <IMainPageViewModel, MainPageViewModel>();

            container.Register <IActivityStreamViewModel, ActivityStreamViewModel>();
            container.Register <IActivityViewModel, ActivityViewModel>();

#if CACHE_ENABLED
            container.Unregister <ICache>();
            container.Register <ICache, StorageCache>();
#endif
        }
コード例 #13
0
        protected override void Initialize(IDIContainer container)
        {
            base.Initialize(container);

            var cm = container.GetInstance<IConfigurationManager<IStepMapConfig>>();
            cm.LoadConfiguation();
            container.RegisterInstance(cm.Config);
        }
コード例 #14
0
        public static void AddDependency <TInterface, TImplementation>(this IDIContainer container, ServiceLifetime lifetime = ServiceLifetime.Transient)
            where TInterface : class
            where TImplementation : class, TInterface
        {
            var service = new ServiceDescriptor(typeof(TInterface), typeof(TImplementation), lifetime);

            container.AddService(service);
        }
コード例 #15
0
        public SimpleCacheFactory(IDIContainer container, IKnownCacheConfiguration knownCacheConfiguration,
                                  ILogFactory logFactory)
        {
            _container = container;
            _knownCacheConfiguration = knownCacheConfiguration;

            _log = logFactory.CreateLog(GetType());
        }
コード例 #16
0
        private void ApplyServiceBehaviors(IDIContainer container)
        {
            var registeredServiceBehaviors = container.GetAllInstance<IServiceBehavior>();

            foreach (var serviceBehavior in registeredServiceBehaviors)
            {
                Description.Behaviors.Add(serviceBehavior);
            }
        }
コード例 #17
0
        public void Register(IDIContainer container)
        {
            container.RegisterInstance(container, typeof(IDIContainer));
            container.RegisterInstance(container, typeof(IRegister));
            container.RegisterInstance(container, typeof(IResolve));

            container.Register <ISerializerFactory, SerializerFactory>();

            container.Register <ISerialize, JsonSerializer>();
            container.Register <ISerializer, JsonSerializer>();
            container.Register <IDeserialize, JsonSerializer>();

            JsonConvert.DefaultSettings = () =>
            {
                var settings = new JsonSerializerSettings();
                settings.ContractResolver = new ContractResolver(container);
                // do something with settings
                return(settings);
            };

            container.Register <ISerialize, JsonSerializer>(KnownSerializerFormats.JSON.ToString());
            container.Register <ISerializer, JsonSerializer>(KnownSerializerFormats.JSON.ToString());
            container.Register <IDeserialize, JsonSerializer>(KnownSerializerFormats.JSON.ToString());

            container.Register <ISerialize, JsonSerializer>(KnownSerializerIntents.Logging.ToString());
            container.Register <ISerializer, JsonSerializer>(KnownSerializerIntents.Logging.ToString());
            container.Register <IDeserialize, JsonSerializer>(KnownSerializerIntents.Logging.ToString());

            container.Register <IEncryptionFactory, BasicEncryptionFactory>();
            container.Register <IEncryption, BasicEncryption>();
            container.Register <IEncrypter, BasicEncryption>();
            container.RegisterInstance(EncryptionAlgorithm.Rijndael, typeof(EncryptionAlgorithm));
            container.Register <IDecrypter, BasicEncryption>();
            container.Register <IEncryptionKeyReadProvider, ConfigurationBasedEncryptionKeyProvider>();
            container.Register <IEncryptionKey, EncryptionKey>();
            container.Register <IValidateEncryptionKeys, ValidateEncryptionKeys>();

            container.RegisterSingleton <IVersionProvider, AssemblyInfoVersionProvider>();
            container.Register <IContractResolver, ContractResolver>();

            container.Register <ICompressionFactory, CompressionFactory>();
            container.Register <ICompression, Compression>();

            container.Register <ICharacterEncodingConverter, CharacterEncodingConverter>();

            container.Register(typeof(IProgress <>), typeof(Progress <>));

            container.Register(typeof(ITimedBufferBatch <>), typeof(TimedBufferBatch <>));
            container.Register(typeof(ITimedBufferBatchWithErrorRetries <>), typeof(TimedBufferBatchWithErrorRetries <>));

            container.Register <IFeatureFlagProvider, ConfigurationBasedFeatureFlagProvider>();

            container.Register <IDomainDataLoader, DomainDataLoader>();
            container.Register <IUser, User>();

            RegisterActorMessageTypes(container);
        }
コード例 #18
0
 public static DependencyRegistrar BuildRegistrarChain(IDIContainer dIContainer)
 {
     return(new InjectableDependencyRegistrar(
                new InjectForDependencyRegistrar(
                    new CanBeInjectedDependencyRegistrar(
                        null, dIContainer)
                    , dIContainer)
                , dIContainer));
 }
コード例 #19
0
        private async Task ExecutePostRegistrationStep(IDIContainer container)
        {
            var defaultInstance = container.Resolve <IPostRegistrationStep>("DefaultDeploymentRegistrationContainer");

            if (defaultInstance != null)
            {
                await defaultInstance.ExecutePostRegistrationStep(container, CancellationToken.None);
            }
        }
コード例 #20
0
        public ActorSystemCore(IDIContainer container, string name = "MyActorSystem")
        {
            _container = container;
            _name      = name;
            var configManager = new ActorSystemConfiguration();
            var config        = configManager.LoadHoconConfigPriority(_name);

            RootActorSystem = SetupActorSystem(_name, config);
        }
コード例 #21
0
 public JSONSerializer(IDIContainer resolver)
 {
     if (Settings.ContractResolver?.GetType() != typeof(ContractResolver))
     {
         Settings.ContractResolver  = new ContractResolver(resolver);
         Settings.Formatting        = Formatting.Indented;
         Settings.NullValueHandling = NullValueHandling.Ignore;
     }
 }
コード例 #22
0
 public MojioHttpClient(IAuthorization authorization, IConfiguration configuration, ISerializer serializer, IDIContainer container, ILog log)
 {
     _configuration            = configuration;
     _serializer               = serializer;
     _container                = container;
     _log                      = log;
     handler.AllowAutoRedirect = true;
     Authorization             = authorization;
 }
コード例 #23
0
        public JsonSerializer(IDIContainer container)
        {
            _contractResolver = new ContractResolver(container);

            _settings = new JsonSerializerSettings();
            MutateSerializerSettings(_settings);

            _serializer = Newtonsoft.Json.JsonSerializer.Create(_settings);
        }
コード例 #24
0
        public RemoteOperationHandler(IDIContainer diContainer)
        {
            if (diContainer == null)
            {
                throw new ArgumentNullException("diContainer");
            }

            this.diContainer = diContainer;
        }
コード例 #25
0
        static IEnumerator <ResolutionStepResult> injectCalibrationWidgets(IDIContainer container, ICalibrator calibrator)
        {
            //Skip(1) because the first item is calibration widget itself
            foreach (var calibrationDataWidget in calibrator.Widgets.Skip(1))
            {
                container.Register <IWidget>(calibrationDataWidget);
            }

            yield return(ResolutionStepResult.RESOLVED);
        }
コード例 #26
0
        public void Register(IDIContainer container)
        {
            container.Register(typeof(ICache <,>), typeof(NonStaticImmutableInMemoryCache <,>));
            container.Register(typeof(ICache <,>), typeof(NonStaticImmutableInMemoryCache <,>), "DEFAULT");
            container.Register(typeof(ICache <,>), typeof(NonStaticImmutableInMemoryCache <,>), "INMEMORY_REQUESTS");
            container.Register <ICacheFactory, SimpleCacheFactory>();

            container.Register <IKnownCacheSetup, KnownCacheSetup>();
            container.Register <IKnownCacheConfiguration, KnownCacheConfiguration>();
        }
コード例 #27
0
 public void Register(IDIContainer container)
 {
     if (!container.IsRegistered <IConfiguration>())
     {
         container.Register <IConfiguration, Configuration>();
         var config = container.Resolve <IConfiguration>();
         config.Build();
         container.RegisterInstance(config, typeof(IConfiguration));
     }
 }
コード例 #28
0
 public StorageCache(ISerializer serializer, IDIContainer container)
 {
     _serializer = serializer;
     _container  = container;
     _storage    = IsolatedStorageFile.GetUserStoreForApplication();
     if (!_storage.DirectoryExists("cache"))
     {
         _storage.CreateDirectory("cache");
     }
 }
コード例 #29
0
ファイル: Global.asax.cs プロジェクト: izevaka/stacktagz
        public MvcApplication()
        {
            m_Container = new DIContainer();
            var configSection = (CompilationSection)ConfigurationManager.GetSection("system.web/compilation");

            if (!configSection.Debug)
                Error += new EventHandler(MvcApplication_Error);

            BeginRequest += new EventHandler(MvcApplication_BeginRequest);

            this.GetLogger().Trace(m => m("Application startup"));
        }
コード例 #30
0
        private void RegisterActorMessageTypes(IDIContainer container)
        {
            container.Register <ICommandToEventAdapter, CommandToEventAdapter>();

            //messages/commands/events
            container.Register <IRespondActorStateEvent, RespondActorStateEvent>();
            container.Register <IUpdateUserActorStateCommand, UpdateUserActorStateCommand>();

            container.Register <IRequestTrackUserCommand, RequestTrackUserCommand>();
            container.Register <IUserTrackingEvent, UserTrackingEvent>();
            container.Register <IUserUpdatedEvent, UserUpdatedEvent>();
        }
コード例 #31
0
        public void Register(IDIContainer container)
        {
            container.Register <ILogFactory, InjectedLogFactory>();
            container.Register <ILog, BroadcastLogger>();
            container.Register <ILog, SerilogLogger>(typeof(SerilogLogger).FullName);

            container.Register <IEventTimingFactory, EventTimingRecorderFactory>();
            container.Register <IInlineEventTimer, InlineEventTimer>();
            container.Register <IInstrumentationEntity, InstrumentationEntity>();
            container.Register <ICaptureAndAggregate, TimerCaptureAndAggregate>();
            container.Register <IMetricAggregator, MetricAggregator>();
        }
コード例 #32
0
        private void ApplyContractBehaviors(IDIContainer container)
        {
            var registeredContractBehaviors = container.GetAllInstance<IContractBehavior>();

            foreach (var contractBehavior in registeredContractBehaviors)
            {
                foreach (var contractDescription in ImplementedContracts.Values)
                {
                    contractDescription.Behaviors.Add(contractBehavior);
                }
            }
        }
コード例 #33
0
ファイル: DIContext.cs プロジェクト: leiwcq/EasyH
 /// <summary>
 /// 设置新的依赖注入容器
 /// </summary>
 /// <param name="container">依赖注入容器</param>
 /// <param name="configFileName">配置文件名称</param>
 /// <returns>依赖注入上下文</returns>
 public DiContext SetContainer(IDIContainer container, string configFileName = "")
 {
     if (container != null)
     {
         Container = container;
         if (!string.IsNullOrEmpty(configFileName))
         {
             container.Init(_name, configFileName);
         }
     }
     return(this);
 }
コード例 #34
0
ファイル: DIContext.cs プロジェクト: leiwcq/EasyH
        /// <summary>
        /// <para>创建依赖注入上下文</para>
        /// <para>默认上下文名称为Default</para>
        /// <para>在默认依赖注入容器中需要注册IDependencyInjectionContainer</para>
        /// <para>用于创建子容器时生成容器</para>
        /// </summary>
        /// <param name="name">上下文名称</param>
        /// <param name="container">依赖注入容器</param>
        /// <param name="configFileName">配置文件名</param>
        /// <returns>依赖注入上下文</returns>
        public static DiContext Create(string name = "Default", IDIContainer container = null, string configFileName = "")
        {
            //是否为创建默认依赖注入上下文
            if (string.IsNullOrWhiteSpace(name) || name.Equals("DEFAULT", StringComparison.CurrentCultureIgnoreCase))
            {
                //依赖注入上下文不允许重复创建
                if (Instance != null)
                {
                    throw new NotSupportedException("Could not create Default instance twice.");
                }
                Instance   = new DiContext();
                TypeFinder = new ContainerTypeFinder();
                Instance.SetContainer(container);
                return(Instance);
            }

            //下级依赖注入上下文创建之前必须创建默认依赖注入上下文
            if (Instance?.Container == null)
            {
                throw new NullReferenceException("Could not create configuration instance with base instance is null.");
            }
            var diContext = Instance.Container.ServiceProvider.GetServices <DiContext>();

            if (false)
            {
                throw new NotSupportedException("Could not create configuration instance twice.");
            }

            var instance = new DiContext
            {
                _name = name
            };

            if (container == null)
            {
                //var newContainer = Instance.Container.ServiceProvider.GetService.Resolve<IDIContainer>();
                //if (newContainer != null)
                //{
                //    instance.SetContainer(newContainer);
                //    Instance.Container.RegisterInstanceWithKeyed(instance, name);
                //    return instance;
                //}
                //else
                //{
                //    throw new NullReferenceException("Could not create instance.");
                //}
            }

            instance.SetContainer(container);
            //Instance.Container.RegisterInstanceWithKeyed(instance, name);
            return(instance);
        }
コード例 #35
0
        public DIContainerInstanceProvider(IDIContainer container, Type contractType)
        {
            if (container == null)
            {
                throw new ArgumentNullException("container");
            }

            if (contractType == null)
            {
                throw new ArgumentNullException("contractType");
            }

            this.container = container;
            this.contractType = contractType;
        }
コード例 #36
0
        private void Initialize(IDIContainer container)
        {
            if (container == null)
            {
                throw new ArgumentNullException("container");
            }

            this.container = container;

            ApplyServiceBehaviors(container);

            ApplyContractBehaviors(container);

            foreach (var contractDescription in ImplementedContracts.Values)
            {
                var contractBehavior = new DIContainerContractBehavior(new DIContainerInstanceProvider(container, contractDescription.ContractType));

                contractDescription.Behaviors.Add(contractBehavior);
            }
        }
コード例 #37
0
ファイル: Configurator.cs プロジェクト: krishnarajv/Code
 private static void LoadSerializarion(IDIContainer container)
 {
     container.RegisterType<ISerialization, NetSerialization>("EncryptionSerializer", TypeInstancingMode.Singleton);
     container.RegisterType<ISerialization, XmlSerialization>("DefaultSerializer", TypeInstancingMode.Singleton);
 }
コード例 #38
0
ファイル: Configurator.cs プロジェクト: krishnarajv/Code
 private static void LoadDebug(IDIContainer container, IConfigService configService)
 {
     var debug = DebugFactory.Create(configService);
     container.RegistryInstance<IDebug>(debug);
 }
コード例 #39
0
ファイル: Configurator.cs プロジェクト: krishnarajv/Code
 private static void LoadInstrumentation(IDIContainer container, IConfigService configService)
 {
     var instrumentation = InstrumentationFactory.Create(configService);
     container.RegistryInstance<IInstrumentation>(instrumentation);
 }
コード例 #40
0
 public DIContainerServiceHost(IDIContainer container, object instance, params Uri[] baseAddresses)
     : base(instance, baseAddresses)
 {
     Initialize(container);
 }
コード例 #41
0
 public DIContainerServiceHost(IDIContainer container, Type serviceType, params Uri[] baseAddresses)
     : base(serviceType, baseAddresses)
 {
     Initialize(container);
 }
コード例 #42
0
 protected virtual void Initialize(IDIContainer container) { }
コード例 #43
0
ファイル: Configurator.cs プロジェクト: krishnarajv/Code
 private static void LoadConfigService(IDIContainer container)
 {
     var configService = ConfigServiceFactory.Create();
     container.RegistryInstance<IConfigService>(configService, TypeInstancingMode.Singleton);
 }
コード例 #44
0
 public History(IRepository repository, IDIContainer container)
 {
     _repository = repository;
     _container = container;
 }
コード例 #45
0
ファイル: Configurator.cs プロジェクト: krishnarajv/Code
 private static void LoadCompression(IDIContainer container)
 {
     BallyTech.Infrastructure.Compression.Compression compression = new BallyTech.Infrastructure.Compression.Compression();
     container.RegistryInstance<ICompression>(compression, TypeInstancingMode.Singleton);
 }
コード例 #46
0
ファイル: Configurator.cs プロジェクト: krishnarajv/Code
 private static void LoadUtil(IDIContainer container)
 {
     var util = new Util(container) as IUtil;
     container.RegistryInstance<IUtil>(util);
 }
コード例 #47
0
ファイル: DIContainer.cs プロジェクト: Badgerati/Edison
 private DIContainer()
 {
     Container = new NinjectContainer();
 }
コード例 #48
0
ファイル: Configurator.cs プロジェクト: krishnarajv/Code
 private static void LoadRNG(IDIContainer container)
 {
     container.RegisterType<Int32RNGGenerator>(RNGType.Int32.ToString(), TypeInstancingMode.Instance);
     container.RegisterType<Int64RNGGenerator>(RNGType.Int64.ToString(), TypeInstancingMode.Instance);
 }
コード例 #49
0
 public ControllerFactory(IDIContainer container)
 {
     m_Container = container;
 }
コード例 #50
0
ファイル: Configurator.cs プロジェクト: krishnarajv/Code
 private static void LoadLogger(IDIContainer container, IConfigService configService)
 {
     var logger = LoggerFactory.Create(configService, null);
     container.RegistryInstance<ILogger>(logger);
 }