Пример #1
0
        public void NInject()
        {
            var configuration = new KernelConfiguration();

            foreach (var type in _types)
            {
                configuration.Bind(type).To(type);
            }

            var container = configuration.BuildReadonlyKernel();

            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.GetService(_types[i]);
            }

            container.Dispose();
        }
        public void TestLoad()
        {
            //
            // 1.测试读取测试配置
            //

            KernelConfiguration configuration = null;

            XmlDocument doc = new XmlDocument();

            XmlNode node;

            doc.Load(path);

            node = doc.GetElementsByTagName(KernelConfiguration.SectionName)[0];

            XmlSerializer ser = new XmlSerializer(typeof(KernelConfiguration));

            configuration = (KernelConfiguration)ser.Deserialize(new XmlNodeReader(node));

            Assert.IsNotNull(configuration);


            //
            // 2.测试读取默认应用配置
            //

            configuration = KernelConfigurationView.Instance.Configuration;

            Assert.IsNotNull(configuration);
        }
Пример #3
0
        public void GlobalSetup()
        {
            var ninjectSettings = new NinjectSettings
            {
                // Disable to reduce memory pressure
                ActivationCacheDisabled = true,
                LoadExtensions          = false
            };

            _kernelConfiguration = new KernelConfiguration(ninjectSettings);
            _kernelConfiguration.Bind <IWarrior>().To <SpecialNinja>().WhenInjectedExactlyInto <NinjaBarracks>();
            _kernelConfiguration.Bind <IWarrior>().To <Samurai>().WhenInjectedExactlyInto <Barracks>();
            _kernelConfiguration.Bind <IWarrior>().To <FootSoldier>().WhenInjectedExactlyInto <Barracks>();
            _kernelConfiguration.Bind <IWarrior>().To <FootSoldier>();
            _kernelConfiguration.Bind <IWeapon>().To <Shuriken>().WhenInjectedExactlyInto <Barracks>();
            _kernelConfiguration.Bind <IWeapon>().To <Sword>();
            _kernelConfiguration.Bind <ICleric>().To <Monk>();
            _kernelConfiguration.Bind(typeof(ICollection <>)).To(typeof(List <>));
            _kernelConfiguration.Bind(typeof(IList <>)).To(typeof(List <>));
            _kernelConfiguration.Bind <ISingleton>().To <Singleton>().InSingletonScope();
            _kernelConfiguration.Bind <IRouteProvider>().To <RouteProvider>();
            _kernelConfiguration.Bind <IRouteRepository>().To <RouteRepository>();
            _kernelConfiguration.Bind <ITrainPlanner>().To <TrainPlanner>();
            _kernelConfiguration.Bind <IRealtimeEventSource>().To <RealtimeEventSource>();

            _readOnlyKernel = _kernelConfiguration.BuildReadOnlyKernel();
            ClearCache(_readOnlyKernel);
        }
Пример #4
0
        public void GlobalSetup()
        {
            var ninjectSettingsWithConstructorAndPropertyInjection = new NinjectSettings
            {
                // Disable to reduce memory pressure
                ActivationCacheDisabled = true,
                LoadExtensions          = false,
                PropertyInjection       = true,
                MethodInjection         = false
            };
            var ninjectSettingsWithOnlyConstructorInjection = new NinjectSettings
            {
                // Disable to reduce memory pressure
                ActivationCacheDisabled = true,
                LoadExtensions          = false,
                PropertyInjection       = false,
                MethodInjection         = false
            };

            _kernelConfigurationWithConstructorAndPropertyInjection = CreateKernelConfiguration(ninjectSettingsWithConstructorAndPropertyInjection);
            _kernelConfigurationWithOnlyConstructorInjection        = CreateKernelConfiguration(ninjectSettingsWithOnlyConstructorInjection);

            _kernelWithConstructorAndPropertyInjection = _kernelConfigurationWithConstructorAndPropertyInjection.BuildReadOnlyKernel();
            _kernelWithOnlyConstructorInjection        = _kernelConfigurationWithOnlyConstructorInjection.BuildReadOnlyKernel();

            _weaponRequest   = _kernelWithConstructorAndPropertyInjection.CreateRequest(typeof(IWeapon), null, Array.Empty <IParameter>(), false, true);
            _clericRequest   = _kernelWithConstructorAndPropertyInjection.CreateRequest(typeof(ICleric), null, Array.Empty <IParameter>(), false, true);
            _reflectRequest  = _kernelWithConstructorAndPropertyInjection.CreateRequest(typeof(IReflect), null, Array.Empty <IParameter>(), false, true);
            _barracksRequest = _kernelWithConstructorAndPropertyInjection.CreateRequest(typeof(NinjaBarracks), null, Array.Empty <IParameter>(), false, true);
            _leasureRequest  = _kernelWithConstructorAndPropertyInjection.CreateRequest(typeof(ILeasure), null, new IParameter[] { new ConstructorArgument("immediately", true, true) }, false, true);
        }
Пример #5
0
        public void Create_ShouldUseConstructorArgumentsForBestConstructor()
        {
            var seq = new MockSequence();

            var injectorOneMock = new Mock <ConstructorInjector>(MockBehavior.Strict);
            var injectorTwoMock = new Mock <ConstructorInjector>(MockBehavior.Strict);
            var directiveOne    = new ConstructorInjectionDirective(GetMyServiceWeaponAndWarriorConstructor(), injectorOneMock.Object);
            var directiveTwo    = new ConstructorInjectionDirective(GetMyServiceClericAndName(), injectorTwoMock.Object);
            var name            = new Random().Next().ToString();
            var cleric          = new Monk();
            var instance        = new object();
            var parameters      = new List <IParameter>
            {
                new ConstructorArgument("name", name),
                new ConstructorArgument("weapon", new Dagger()),
                new ConstructorArgument("cleric", cleric),
            };

            var kernelConfiguration = new KernelConfiguration(_ninjectSettings);
            var context             = CreateContext(kernelConfiguration, kernelConfiguration.BuildReadOnlyKernel(), parameters, typeof(NinjaBarracks), _providerCallbackMock.Object, _ninjectSettings);

            context.Plan = new Plan(typeof(MyService));
            context.Plan.Add(directiveOne);
            context.Plan.Add(directiveTwo);

            _constructorScorerMock.InSequence(seq).Setup(p => p.Score(context, directiveOne)).Returns(2);
            _constructorScorerMock.InSequence(seq).Setup(p => p.Score(context, directiveTwo)).Returns(3);
            injectorTwoMock.InSequence(seq).Setup(p => p(cleric, name)).Returns(instance);

            var actual = _standardProvider.Create(context);

            Assert.Same(instance, actual);
        }
        private static IReadOnlyKernel BuildKernel(INinjectSettings ninjectSettings)
        {
            var kernelConfiguration = new KernelConfiguration(ninjectSettings);

            kernelConfiguration.Bind <IWarrior>().To <SpecialNinja>().WhenInjectedExactlyInto <NinjaBarracks>();
            kernelConfiguration.Bind <IWarrior>().To <Samurai>().WhenInjectedExactlyInto <Barracks>();
            kernelConfiguration.Bind <IWarrior>().To <FootSoldier>().WhenInjectedExactlyInto <Barracks>();
            kernelConfiguration.Bind <IWarrior>().To <FootSoldier>();
            kernelConfiguration.Bind <IWeapon>().To <Shuriken>().WhenInjectedExactlyInto <Barracks>();
            kernelConfiguration.Bind <IWeapon>().To <ShortSword>().WhenInjectedExactlyInto <NinjaBarracks>();
            kernelConfiguration.Bind <IWeapon>().To <Sword>();
            kernelConfiguration.Bind <IWeapon>().To <Dagger>();
            kernelConfiguration.Bind <ICleric>().To <Monk>();
            kernelConfiguration.Bind(typeof(ICollection <>)).To(typeof(List <>));
            kernelConfiguration.Bind(typeof(IList <>)).To(typeof(List <>));
            kernelConfiguration.Bind <ISingletonService>().To <SingletonService>().InSingletonScope();
            kernelConfiguration.Bind <IThreadLocalService>().To <ThreadLocalService>().InThreadScope();

            kernelConfiguration.Bind <ILeasure>()
            .To <TakeAWalk>()
            .WithParameter(new ConstructorArgument("walkTime", TimeSpan.FromMinutes(5), true));
            kernelConfiguration.Bind <IAnimal>()
            .To <Dog>()
            .WhenInjectedExactlyInto <TakeAWalk>();
            kernelConfiguration.Bind <IWeapon>()
            .To <Dagger>()
            .WhenInjectedExactlyInto <TakeAWalk>();

            return(kernelConfiguration.BuildReadOnlyKernel());
        }
Пример #7
0
        private IReadOnlyKernel RegisterApplicationComponents(IApplicationBuilder app, ILoggerFactory loggerFactory, TokenValidationParameters tokenParams)
        {
            IKernelConfiguration config = new KernelConfiguration();
            // Add JWT generation endpoint:
            var secretKey = Configuration["secret"];

            var signingKey = new SymmetricSecurityKey(Encoding.ASCII.GetBytes(secretKey));
            var options    = new TokenProviderOptions
            {
                Audience           = tokenParams.ValidAudience,
                Issuer             = tokenParams.ValidIssuer,
                SigningCredentials = new SigningCredentials(tokenParams.IssuerSigningKey, SecurityAlgorithms.HmacSha256)
            };

            config.Bind <TokenProviderOptions>().ToConstant(options).InSingletonScope();
            // Register application services
            //config.Bind(app.GetControllerTypes()).ToSelf().InScope(RequestScope);//todo fix
            config.Bind <HomeController>().ToSelf().InScope(RequestScope);
            config.Bind <BooksController>().ToSelf().InScope(RequestScope);
            var dataContext = new DataContext(Configuration.GetConnectionString("DefaultConnection"));

            //config.Bind<IUserService>().To<AspNetUserService>().InScope(RequestScope);
            config.Bind <IDataContext>().ToConstant(dataContext).InSingletonScope();
            config.Bind <IUserRepository>().ToConstant(dataContext.Users).InSingletonScope();
            config.Bind <IBookRepository>().ToConstant(dataContext.Books).InSingletonScope();
            //config.Bind<CustomMiddleware>().ToSelf();

            // Cross-wire required framework services
            config.BindToMethod(app.GetRequestService <IViewBufferScope>);
            config.Bind <ILoggerFactory>().ToConstant(loggerFactory);

            return(config.BuildReadonlyKernel());
        }
Пример #8
0
        public CacheBenchmark()
        {
            var ninjectSettings = new NinjectSettings
            {
                // Disable to reduce memory pressure
                ActivationCacheDisabled = true,
                LoadExtensions          = false,
            };

            _cache = new Cache(new Pipeline(Enumerable.Empty <IActivationStrategy>(), new ActivationCache(new NoOpCachePruner())), new NoOpCachePruner());

            _kernelConfiguration                      = new KernelConfiguration();
            _readOnlyKernel                           = _kernelConfiguration.BuildReadOnlyKernel();
            _instanceForScopeWithZeroEntries          = new object();
            _instanceReferenceForScopeWithZeroEntries = new InstanceReference {
                Instance = _instanceForScopeWithZeroEntries
            };

            _scopeWithNoCache = new object();
            _scopeWithOneEntryForBindingConfiguration         = new object();
            _scopeWithZeroEntriesForBindingConfiguration      = new object();
            _scopeWithMoreThanOneEntryForBindingConfiguration = new object();

            _contextWithNoCache = CreateContext(_kernelConfiguration, _readOnlyKernel, typeof(string), _scopeWithNoCache, ninjectSettings);
            _contextWithZeroEntriesForBindingConfiguration      = CreateContext(_kernelConfiguration, _readOnlyKernel, typeof(string), _scopeWithZeroEntriesForBindingConfiguration, ninjectSettings);
            _contextWithOneEntryForBindingConfiguration         = CreateContext(_kernelConfiguration, _readOnlyKernel, typeof(string), _scopeWithOneEntryForBindingConfiguration, ninjectSettings);
            _contextWithMoreThanOneEntryForBindingConfiguration = CreateContext(_kernelConfiguration, _readOnlyKernel, typeof(string), _scopeWithMoreThanOneEntryForBindingConfiguration, ninjectSettings);
        }
Пример #9
0
        public void GlobalSetup()
        {
            var ninjectSettings = new NinjectSettings {
                LoadExtensions = false
            };

            var kernelConfiguration = new KernelConfiguration(ninjectSettings);

            kernelConfiguration.Bind <IWarrior>().To <SpecialNinja>().WhenInjectedExactlyInto <NinjaBarracks>();
            kernelConfiguration.Bind <IWarrior>().To <Samurai>().WhenInjectedExactlyInto <Barracks>();
            kernelConfiguration.Bind <IWarrior>().To <FootSoldier>().WhenInjectedExactlyInto <Barracks>();
            kernelConfiguration.Bind <IWeapon>().To <Shuriken>().WhenInjectedExactlyInto <Barracks>();
            kernelConfiguration.Bind <IWeapon>().To <ShortSword>().WhenInjectedExactlyInto <Spartan>();

            _injectorFactory = new ExpressionInjectorFactory();

            _contextWithParams = CreateContext(kernelConfiguration,
                                               kernelConfiguration.BuildReadOnlyKernel(),
                                               new List <IParameter>
            {
                new ConstructorArgument("height", 34),
                new PropertyValue("name", "cutter"),
                new ConstructorArgument("width", 17),
                new ConstructorArgument("location", "Biutiful")
            },
                                               typeof(StandardConstructorScorerBenchmark),
                                               ninjectSettings);

            _contextWithoutParams = CreateContext(kernelConfiguration,
                                                  kernelConfiguration.BuildReadOnlyKernel(),
                                                  Enumerable.Empty <IParameter>(),
                                                  typeof(StandardConstructorScorerBenchmark),
                                                  ninjectSettings);

            _injectCtor          = typeof(NinjaBarracks).GetConstructor(new[] { typeof(IWarrior), typeof(IWeapon) });
            _injectCtorDirective = new ConstructorInjectionDirective(_injectCtor, _injectorFactory.Create(_injectCtor));

            _defaultCtor          = typeof(NinjaBarracks).GetConstructor(new Type[0]);
            _defaultCtorDirective = new ConstructorInjectionDirective(_defaultCtor, _injectorFactory.Create(_defaultCtor));

            _knifeCtor          = typeof(Knife).GetConstructor(new[] { typeof(int), typeof(int) });
            _knifeCtorDirective = new ConstructorInjectionDirective(_knifeCtor, _injectorFactory.Create(_knifeCtor));

            _knifeDefaultsCtor          = typeof(Knife).GetConstructor(new[] { typeof(bool), typeof(string) });
            _knifeDefaultsCtorDirective = new ConstructorInjectionDirective(_knifeDefaultsCtor, _injectorFactory.Create(_knifeDefaultsCtor));

            _spartanNameAndAgeCtor          = typeof(Spartan).GetConstructor(new[] { typeof(string), typeof(int) });
            _spartanNameAndAgeCtorDirective = new ConstructorInjectionDirective(_spartanNameAndAgeCtor, _injectorFactory.Create(_spartanNameAndAgeCtor));

            _spartanHeightAndWeaponCtor          = typeof(Spartan).GetConstructor(new[] { typeof(string), typeof(int) });
            _spartanHeightAndWeaponCtorDirective = new ConstructorInjectionDirective(_spartanHeightAndWeaponCtor, _injectorFactory.Create(_spartanHeightAndWeaponCtor));

            _barracksCtor          = typeof(Barracks).GetConstructor(new[] { typeof(IWarrior), typeof(IWeapon) });
            _barracksCtorDirective = new ConstructorInjectionDirective(_barracksCtor, _injectorFactory.Create(_barracksCtor));

            _monasteryCtor          = typeof(Monastery).GetConstructor(new[] { typeof(IWarrior), typeof(IWeapon) });
            _monasteryCtorDirective = new ConstructorInjectionDirective(_monasteryCtor, _injectorFactory.Create(_monasteryCtor));

            _standardConstructorScorer = new StandardConstructorScorer(ninjectSettings);
        }
Пример #10
0
        static void Main()
        {
            // Use the assembly GUID as the name of the mutex which we use to detect if an application instance is already running
            var mutexName = Assembly.GetExecutingAssembly().GetType().GUID.ToString();

            using (var mutex = new Mutex(false, mutexName, out var createdNew))
            {
                if (!createdNew)
                {
                    // Only allow one instance
                    return;
                }

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                try
                {
                    var kernel  = new KernelConfiguration(new MainModule(), new CoreModule()).BuildReadonlyKernel();
                    var context = kernel.Get <STAApplicationContext>();
                    Application.Run(context);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
            public IKernelConfiguration CreateKernelConfiguration(ILogger log)
            {
                var config = new KernelConfiguration();

                config.Bind <ILogger>().ToConstant(log);

                return(config);
            }
Пример #12
0
        public StandardProviderBenchmark()
        {
            var ninjectSettings = new NinjectSettings
            {
                // Disable to reduce memory pressure
                ActivationCacheDisabled = true,
                LoadExtensions          = false
            };
            var kernelConfigurationWithoutBindings = new KernelConfiguration(ninjectSettings);

            #region FromConstructorArguments

            _contextWithConstructorArguments = CreateContext(kernelConfigurationWithoutBindings,
                                                             kernelConfigurationWithoutBindings.BuildReadOnlyKernel(),
                                                             new List <IParameter>
            {
                new ConstructorArgument("location", "Biutiful"),
                new PropertyValue("warrior", "cutter"),
                new ConstructorArgument("warrior", new Monk()),
                new ConstructorArgument("weapon", new Dagger()),
            },
                                                             typeof(NinjaBarracks),
                                                             ninjectSettings);
            _contextWithConstructorArguments.Plan = kernelConfigurationWithoutBindings.Components.Get <IPlanner>().GetPlan(typeof(NinjaBarracks));

            #endregion FromConstructorArguments

            #region FromBindings

            var kernelConfigurationWithBindings = new KernelConfiguration(ninjectSettings);
            kernelConfigurationWithBindings.Bind <IWarrior>().To <Monk>().InSingletonScope();
            kernelConfigurationWithBindings.Bind <IWeapon>().To <Dagger>().InSingletonScope();
            _contextWithoutConstructorArguments = CreateContext(kernelConfigurationWithBindings,
                                                                kernelConfigurationWithBindings.BuildReadOnlyKernel(),
                                                                new List <IParameter>(),
                                                                typeof(NinjaBarracks),
                                                                ninjectSettings);
            _contextWithoutConstructorArguments.Plan = kernelConfigurationWithBindings.Components.Get <IPlanner>().GetPlan(typeof(NinjaBarracks));

            #endregion FromBindings

            #region FromDefaultConstructor

            _contextWithDefaultConstructor = CreateContext(kernelConfigurationWithBindings,
                                                           kernelConfigurationWithBindings.BuildReadOnlyKernel(),
                                                           new List <IParameter>(),
                                                           typeof(Dagger),
                                                           ninjectSettings);
            _contextWithDefaultConstructor.Plan = kernelConfigurationWithBindings.Components.Get <IPlanner>().GetPlan(typeof(Dagger));

            #endregion FromDefaultConstructor

            _warriorParameterTarget = CreateWarriorParameterTarget();

            _standardProvider = new StandardProvider(typeof(StandardProviderBenchmark),
                                                     kernelConfigurationWithoutBindings.Components.Get <IPlanner>(),
                                                     kernelConfigurationWithoutBindings.Components.Get <IConstructorScorer>());
        }
        public IKernelConfiguration CreateKernelConfiguration(ILogger log)
        {
            var config = new KernelConfiguration();

            config.Bind <IFakeService>().To <FakeService>().InSingletonScope();
            config.Bind <ILogger>().ToConstant(log);

            return(config);
        }
Пример #14
0
        public NinjectBenchmark()
        {
            var config = new KernelConfiguration();

            config.Bind <ISingleton>().To <Singleton>().InSingletonScope();
            config.Bind <ITransient>().To <Transient>().InTransientScope();
            config.Bind <ICombined>().To <Combined>().InTransientScope();
            kernel = config.BuildReadonlyKernel();
        }
Пример #15
0
 public static async Task RegisterAccounts(int count)
 {
     var registrarKernelConfiguration = new KernelConfiguration(
         new BehindTheNameGeneratorModule(),
         new DungeonCrawlRegistrarAccountBotModule(DungeonCrawlServerLabels.Akrasiac, ProxyList),
         new PasswordGeneratorModule(),
         new EmailGeneratorModule());
     var registrarReadonlyKernel         = registrarKernelConfiguration.BuildReadonlyKernel();
     var dungeonCrawlRegistrarAccountBot = registrarReadonlyKernel.Get <DungeonCrawlRegistrarAccountBot>();
     await dungeonCrawlRegistrarAccountBot.RegisterAccount(count);
 }
Пример #16
0
            protected ReadOnlyKernelContext()
            {
                var settings = new NinjectSettings
                {
                    // Disable to reduce memory pressure
                    ActivationCacheDisabled = true,
                    LoadExtensions          = false,
                };

                Configuration = new KernelConfiguration(settings);
            }
Пример #17
0
        public static void Setup()
        {
            var kcfg = new KernelConfiguration(
                new FitsArchiveLibModule(),
                new ViewModelsModule(),
                new ViewsModule()
                );

            PreKernelBuild(kcfg);
            Kernel = kcfg.BuildReadonlyKernel();
            PostKernelBuild();
        }
Пример #18
0
        public static INForumApplicationBuilder WithNinject(this INForumApplicationBuilder app)
        {
            IKernelConfiguration config = new KernelConfiguration();

            // Register application services
            config.Bind(app.ApplicationBuilder.GetControllerTypes()).ToSelf().InScope(RequestScope);

            config.Bind <IUserService>().To <AspNetUserService>().InScope(RequestScope);
            //config.Bind<CustomMiddleware>().ToSelf();

            // Cross-wire required framework services
            config.BindToMethod(app.GetRequestService <IViewBufferScope>);
            //config.Bind<ILoggerFactory>().ToConstant(loggerFactory);

            config.Bind <ICommandDispatcher>().To <CommandDispatcher>();
            config.Bind <IQueryDispatcher>().To <QueryDispatcher>();

            config.Bind <IHttpContextAccessor>().ToMethod((context) => {
                return(app.ApplicationServices.GetRequiredService <IHttpContextAccessor>());
            }).InScope(RequestScope);

            config.Bind <IPrincipal>().ToMethod((context) => {
                return(context.Kernel.Get <IHttpContextAccessor>().HttpContext.User);
            }).InScope(RequestScope);

            config
            .Bind(typeof(IGenericValidationCommandHandlerDecorator <>))
            .To(typeof(GenericValidationCommandHandlerDecorator <>));
            config
            .Bind(typeof(IGenericPermissionCheckCommandHandlerDecorator <>))
            .To(typeof(GenericPermissionCheckCommandHandlerDecorator <>));

            config
            .Bind(typeof(IGenericValidationQueryHandlerDecorator <,>))
            .To(typeof(GenericValidationQueryHandlerDecorator <,>));
            config
            .Bind(typeof(IGenericPermissionCheckQueryHandlerDecorator <,>))
            .To(typeof(GenericPermissionCheckQueryHandlerDecorator <,>));

            Assembly coreAssembly = typeof(NForum.CQS.CommandWithStatus).GetTypeInfo().Assembly;

            config.BindQueryHandlers(coreAssembly);

            config.BindCommandHandlers(coreAssembly);

            config.BindPermissionChecks(coreAssembly);

            config.BindValidators(coreAssembly);

            kernel = config.BuildReadonlyKernel();

            return(builder);
        }
Пример #19
0
        public void UseReflectionBasedInjection_Disabled()
        {
            var settings = new NinjectSettings {
                UseReflectionBasedInjection = false
            };
            var kernelConfiguration = new KernelConfiguration(settings);

            var injectorFactories = kernelConfiguration.Components.GetAll <IInjectorFactory>();

            Assert.Single(injectorFactories);
            Assert.Single(injectorFactories, s => s is ExpressionInjectorFactory);
        }
        /// <summary>重新加载</summary>
        public void Reload()
        {
            this.configuration = KernelConfigurationView.Instance.Configuration;

            string authenticationManagementType = KernelConfigurationView.Instance.AuthenticationManagementType;

            this.authenticationManagement = (IAuthenticationManagement)CreateObject(authenticationManagementType);

            // -------------------------------------------------------
            // 设置定时器
            // -------------------------------------------------------

            // 定时清理临时目录下的临时文件 设置为 3 天
            if (!Directory.Exists(KernelConfigurationView.Instance.ApplicationTempPathRoot))
            {
                DirectoryHelper.Create(KernelConfigurationView.Instance.ApplicationTempPathRoot);
            }

            timer.Enabled = true;

            // 每天检测一次目录
            timer.Interval = 24 * 60 * 60 * 1000;

            timer.Elapsed += delegate(object sender, ElapsedEventArgs e)
            {
                try
                {
                    string[] files = Directory.GetFiles(KernelConfigurationView.Instance.ApplicationTempPathRoot, "*.*", SearchOption.AllDirectories);

                    foreach (string file in files)
                    {
                        DateTime createdTime = File.GetCreationTime(file);

                        if (createdTime.AddDays(KernelConfigurationView.Instance.ApplicationTempFileRemoveTimerInterval) < DateTime.Now)
                        {
                            File.Delete(file);

                            logger.Info("Delete expired temporary file:" + file);
                        }
                    }
                }
                catch (Exception ex)
                {
                    logger.Error(ex);
                }
            };

            timer.Start();
        }
Пример #21
0
        private IReadOnlyKernel RegisterApplicationComponents(IApplicationBuilder app, ILoggerFactory loggerFactory)
        {
            IKernelConfiguration config = new KernelConfiguration();

            // Register application services
            config.Bind(app.GetControllerTypes()).ToSelf().InScope(RequestScope);

            // Cross-wire required framework services
            config.BindToMethod(app.GetRequestService <IViewBufferScope>);
            config.Bind <ILoggerFactory>().ToConstant(loggerFactory);

            config.Bind <IConfiguration>().ToConstant(Configuration);

            return(config.BuildReadonlyKernel());
        }
Пример #22
0
        public void PropertyInjection_Disabled()
        {
            var settings = new NinjectSettings {
                PropertyInjection = false
            };
            var kernelConfiguration = new KernelConfiguration(settings);

            var planningStrategies = kernelConfiguration.Components.GetAll <IPlanningStrategy>();

            Assert.Empty(planningStrategies.Where(p => p is PropertyReflectionStrategy));

            var activationStrategies = kernelConfiguration.Components.GetAll <IActivationStrategy>();

            Assert.Empty(planningStrategies.Where(p => p is PropertyInjectionStrategy));
        }
Пример #23
0
        public static async Task GoToUser(string userName, int count)
        {
            var botKernelConfiguration = new KernelConfiguration(
                new DungeonCrawlBotModule(DungeonCrawlServerLabels.Akrasiac, ProxyList));
            var botReadonlyKernel = botKernelConfiguration.BuildReadonlyKernel();

            using (var dungeonCrawlBot = botReadonlyKernel.Get <DungeonCrawlBot>())
            {
                await dungeonCrawlBot.Connect(count);

                await dungeonCrawlBot.Login();

                await dungeonCrawlBot.WatchUser(userName);
            }
        }
Пример #24
0
        private static void PreKernelBuild(KernelConfiguration kcfg)
        {
            var path    = Path.GetDirectoryName(typeof(Bootstrap).Assembly.Location);
            var logFile = Path.Combine(path, "fitsarchive.log");

            // Default ILog binding is the common log.
            kcfg.Bind <ILog>().ToMethod((context) =>
            {
                var ls = context.Kernel.Get <ILogService>();
                return(ls.HasLog(CommonLogName) ? ls.GetLog(CommonLogName) : ls.InitializeLog(CommonLogName, logFile));
            });

            // Bind ViewModelProvider
            kcfg.Bind <IViewModelProvider>().ToMethod(context => new ViewModelProvider(Kernel)).InSingletonScope();
        }
Пример #25
0
        public void PropertyInjection_Enabled()
        {
            var settings = new NinjectSettings {
                PropertyInjection = true
            };
            var kernelConfiguration = new KernelConfiguration(settings);

            var planningStrategies = kernelConfiguration.Components.GetAll <IPlanningStrategy>();

            Assert.NotNull(planningStrategies.SingleOrDefault(p => p is PropertyReflectionStrategy));

            var activationStrategies = kernelConfiguration.Components.GetAll <IActivationStrategy>();

            Assert.NotNull(activationStrategies.SingleOrDefault(p => p is PropertyInjectionStrategy));
        }
        public void Setup()
        {
            var kernelConfig = new KernelConfiguration(new ResolverModule());

            _useCaseInteractor = Substitute.For <IInteractor <MockUseCase, IMockOutputPort> >();

            _globalMiddleware = Substitute.For <IMiddleware>();
            _globalMiddleware.Execute(
                Arg.Any <MockUseCase>(),
                d => Task.FromResult(new UseCaseResult(true)),
                Arg.Any <CancellationToken>())
            .ReturnsForAnyArgs(x => new UseCaseResult(true))
            .AndDoes(x => x.Arg <Func <MockUseCase, Task <UseCaseResult> > >().Invoke(x.Arg <MockUseCase>()));

            _middleware1 = Substitute.For <IMiddleware <MockUseCase, IMockOutputPort> >();
            _middleware1.Execute(
                Arg.Any <MockUseCase>(),
                Arg.Any <IMockOutputPort>(),
                d => Task.FromResult(new UseCaseResult(true)),
                Arg.Any <CancellationToken>())
            .ReturnsForAnyArgs(x => new UseCaseResult(true))
            .AndDoes(x => x.Arg <Func <MockUseCase, Task <UseCaseResult> > >().Invoke(x.Arg <MockUseCase>()));

            _middleware2 = Substitute.For <IMiddleware <MockUseCase, IMockOutputPort> >();
            _middleware2.Execute(
                Arg.Any <MockUseCase>(),
                Arg.Any <IMockOutputPort>(),
                d => Task.FromResult(new UseCaseResult(true)),
                Arg.Any <CancellationToken>())
            .ReturnsForAnyArgs(x => new UseCaseResult(true))
            .AndDoes(x => x.Arg <Func <MockUseCase, Task <UseCaseResult> > >().Invoke(x.Arg <MockUseCase>()));

            kernelConfig.Bind <IMiddleware <MockUseCase, IMockOutputPort> >()
            .ToMethod(context => _middleware1);

            kernelConfig.Bind <IMiddleware <MockUseCase, IMockOutputPort> >()
            .ToMethod(context => _middleware2);

            kernelConfig.Bind <IInteractor <MockUseCase, IMockOutputPort> >()
            .ToMethod(context => _useCaseInteractor);

            kernelConfig.Bind <IMiddleware>()
            .ToMethod(context => _globalMiddleware);

            var kernel = kernelConfig.BuildReadonlyKernel();

            _interactorHub = kernel.Get <IInteractorHub>();
        }
        public void TestSave()
        {
            KernelConfiguration configuration = new KernelConfiguration();

            KernelConfigurationKey key1 = new KernelConfigurationKey("HostName", "http://www.kanf.cn");
            KernelConfigurationKey key2 = new KernelConfigurationKey("Version", "1.0.0.0");
            KernelConfigurationKey key3 = new KernelConfigurationKey("Author", "X3Platform");
            KernelConfigurationKey key4 = new KernelConfigurationKey("ApplicationPathRoot", "E:\\Workspace\\X3Platform\\branches\\1.0.0\\trunk\\Kernel\\Kernel.TestSuite\\");

            configuration.Keys.Add(key1);
            configuration.Keys.Add(key2);
            configuration.Keys.Add(key3);
            configuration.Keys.Add(key4);

            // KernelConfigurationView.Instance.Serialize(path, KernelConfiguration.SectionName, configuration);
        }
Пример #28
0
        /// <summary></summary>
        /// <param name="configuration"></param>
        public InnerConnectionPlugin(KernelConfiguration configuration)
        {
            this.dictionary = new Dictionary <string, string>();

            foreach (KernelConfigurationKey key in configuration.Keys)
            {
                if (!this.dictionary.ContainsKey(key.Name))
                {
                    this.dictionary.Add(key.Name, key.Value);
                }
                else
                {
                    this.dictionary[key.Name] = key.Value;
                }
            }
        }
Пример #29
0
        public RequestBenchmark()
        {
            _ninjectSettings = new NinjectSettings
            {
                // Disable to reduce memory pressure
                ActivationCacheDisabled = true,
                LoadExtensions          = false
            };
            _kernelConfiguration = new KernelConfiguration(_ninjectSettings);
            _kernel             = _kernelConfiguration.BuildReadOnlyKernel();
            _service            = typeof(MyInstrumentedService);
            _target             = CreatePropertyTarget(_service);
            _constraint         = null;
            _scopeCallback      = null;
            _cachePruner        = new GarbageCollectionCachePruner(_ninjectSettings);
            _pipeline           = new Pipeline(Enumerable.Empty <IActivationStrategy>(), new ActivationCache(_cachePruner));
            _cache              = new Cache(_pipeline, _cachePruner);
            _planner            = new Planner(Enumerable.Empty <IPlanningStrategy>());
            _exceptionFormatter = new ExceptionFormatter();

            _emptyParameters = Array.Empty <IParameter>();
            _requestParameterWithMixOfShouldInheritSetToTrueAndFalse = new List <IParameter>
            {
                new ConstructorArgument("foo1", 1, true),
                new ConstructorArgument("foo3", 3, true),
                new ConstructorArgument("foo3", 3, false),
                new ConstructorArgument("foo5", 5, false)
            };
            _bindingParameterWithMixOfShouldInheritSetToTrueAndFalse = new List <IParameter>
            {
                new ConstructorArgument("foo1", 1, true),
                new ConstructorArgument("foo2", 2, true),
                new ConstructorArgument("foo3", 3, false),
                new ConstructorArgument("foo4", 4, false),
            };

            _rootRequestWithoutParameters = CreateRootRequest(_emptyParameters);
            _rootRequestWithMixOfShouldInheritSetToTrueAndFalse = CreateRootRequest(_requestParameterWithMixOfShouldInheritSetToTrueAndFalse);

            _bindingWithoutParameters = CreateBinding(Array.Empty <IParameter>());
            _contextWithoutRequestAndBindingParameters = CreateContext(_rootRequestWithoutParameters, _bindingWithoutParameters);
            _bindingWithParameters = CreateBinding(_bindingParameterWithMixOfShouldInheritSetToTrueAndFalse);
            _contextWithRequestAndBindingParameters = CreateContext(_rootRequestWithMixOfShouldInheritSetToTrueAndFalse, _bindingWithParameters);

            _childRequestWithoutParameters = CreateChildRequest(_contextWithoutRequestAndBindingParameters, _target);
            _childRequestWithRequestAndBindingParameters = CreateChildRequest(_contextWithRequestAndBindingParameters, _target);
        }
        public void BuildReadOnlyKernelShouldCloneBindings()
        {
            var kernelConfiguration = new KernelConfiguration();

            kernelConfiguration.Bind <IWeapon>().To <Shuriken>();
            kernelConfiguration.Bind <IWeapon>().To <Sword>();
            kernelConfiguration.Bind <ICleric>().To <Monk>();

            var readOnlyKernel = kernelConfiguration.BuildReadOnlyKernel();

            kernelConfiguration.RemoveBinding(kernelConfiguration.GetBindings(typeof(IWeapon)).First());
            kernelConfiguration.Unbind(typeof(ICleric));

            Assert.NotNull(readOnlyKernel);
            Assert.Equal(2, readOnlyKernel.GetBindings(typeof(IWeapon)).Count());
            Assert.Single(readOnlyKernel.GetBindings(typeof(ICleric)));
        }