Exemple #1
0
        public void LightInject()
        {
            var container = new LightInject.ServiceContainer();

            foreach (var type in _types)
            {
                container.Register(type, type);
            }

            int length = 0;

            if (Scenario == ResolveScenario.ResolveOne)
            {
                length = 1;
            }
            else if (Scenario == ResolveScenario.ResolveHalf)
            {
                length = _types.Length / 2;
            }
            else if (Scenario == ResolveScenario.ResolveAll)
            {
                length = _types.Length;
            }

            for (var i = 0; i < length; i++)
            {
                container.GetInstance(_types[i]);
            }

            container.Dispose();
        }
        public static IFileWatcher CreateFileWatcher()
        {
            LightInject.ServiceContainer _container = new LightInject.ServiceContainer();
            _container.Register(typeof(IFileWatcher), typeof(WatcherEx));
            IFileWatcher obj = _container.GetInstance <IFileWatcher>();

            return(obj);
        }
Exemple #3
0
        public static IFileMonitor CreateFolderWatcher()
        {
            LightInject.ServiceContainer _container = new LightInject.ServiceContainer();
            _container.Register(typeof(IFileMonitor), typeof(FileMonitor));
            IFileMonitor obj = _container.GetInstance <IFileMonitor>();

            return(obj);
        }
Exemple #4
0
        public static IRuleEngine CreateInstance()
        {
            LightInject.ServiceContainer _container = new LightInject.ServiceContainer();
            _container.Register(typeof(IRuleEngine), typeof(RuleEngine));
            IRuleEngine obj = _container.GetInstance <IRuleEngine>();

            return(obj);
        }
Exemple #5
0
        public static ILogger CreateLogger()
        {
            LightInject.ServiceContainer _container = new LightInject.ServiceContainer();
            _container.Register(typeof(ILogger), typeof(Logger));
            ILogger obj = _container.GetInstance <ILogger>();

            return(obj);
        }
Exemple #6
0
        public static IEnumerable <object[]> GetContainerAdapters()
        {
            yield return(new object[] { (ResolverFactory)(c =>
                {
                    var container = new DefaultServiceContainer();
                    c(container);
                    return container.Resolve <IServiceResolver>();
                }) });

            yield return(new object[] { (ResolverFactory)(c =>
                {
                    var container = new LightInjectContainer();
                    c(new LightInjectAdapter(container));
                    return container.GetInstance <IServiceResolver>();
                }) });

            yield return(new object[] { (ResolverFactory)(c =>
                {
                    var container = new SimpleInjectorContainer {
                        Options = { AllowOverridingRegistrations = true }
                    };
                    c(new SimpleInjectorAdapter(container));
                    return container.GetInstance <IServiceResolver>();
                }) });

            yield return(new object[] { (ResolverFactory)(c =>
                {
                    var container = new StructureMapContainer(r => c(new StructureMapAdapter(r)));
                    return container.GetInstance <IServiceResolver>();
                }) });

            yield return(new object[] { (ResolverFactory)(c =>
                {
                    var containerBuilder = new ContainerBuilder();
                    c(new AutofacAdapter(containerBuilder));
                    var container = containerBuilder.Build();
                    return container.Resolve <IServiceResolver>();
                }) });

#if NETFX
            yield return(new object[] { (ResolverFactory)(c =>
                {
                    var container = new WindsorContainer();
                    c(new WindsorAdapter(container));
                    return container.Resolve <IServiceResolver>();
                }) });

            yield return(new object[] { (ResolverFactory)(c =>
                {
                    var container = new NinjectContainer();
                    c(new NinjectAdapter(container));
                    return container.Get <IServiceResolver>();
                }) });
#endif
        }
 public T GetInstance <T>()
 {
     return(_container.GetInstance <T>());
 }
Exemple #8
0
        public void RegisterImplmentation()
        {
            // Auto register
            var odtLibraries = GetReferencingAssemblies("OnDemandTools")
                               .SelectMany(assembly => assembly.ExportedTypes)
                               .ToList();


            var profiles = odtLibraries.Where(t => t.GetTypeInfo().IsClass &&
                                              !t.GetTypeInfo().IsAbstract &&
                                              !t.GetTypeInfo().IsInterface).ToList();

            foreach (var item in profiles)
            {
                var ints = item.GetInterfaces();
                foreach (var it in ints)
                {
                    if (it.ToString().StartsWith("OnDemandTools", StringComparison.OrdinalIgnoreCase))
                    {
                        cntr.Register(it, item);
                    }
                }
            }

            // Add those that cannot be auto registered. Basically the ones outside 'OnDemandTools' namespace or
            // someother special case


            // Special initialization for StatusLibrary class
            OnDemandTools.DAL.Modules.Reporting.Library.StatusLibrary.Init((AppSettings)cntr.GetInstance(typeof(AppSettings)));
        }