Example #1
0
        public ContextBenchmark()
        {
            var requestParameters = new List <IParameter>
            {
                new ConstructorArgument("foo", 5),
                new ConstructorArgument("boo", 7),
                new PropertyValue("name", "Tom")
            };

            var bindingParameters = new List <IParameter>
            {
                new ConstructorArgument("abc", 2),
                new ConstructorArgument("def", 1),
                new PropertyValue("ghi", "Dirk")
            };

            _requestWithParameters    = CreateRequest(requestParameters);
            _requestWithoutParameters = CreateRequest(Array.Empty <IParameter>());

            _bindingWithParameters    = CreateBinding(bindingParameters);
            _bindingWithoutParameters = CreateBinding(Array.Empty <IParameter>());

            _ninjectSettings = new NinjectSettings
            {
                // Disable to reduce memory pressure
                ActivationCacheDisabled = true,
                LoadExtensions          = false
            };
            _kernelConfiguration = new KernelConfiguration(_ninjectSettings);
            _kernel             = _kernelConfiguration.BuildReadOnlyKernel();
            _cache              = _kernelConfiguration.Components.Get <ICache>();
            _planner            = _kernelConfiguration.Components.Get <IPlanner>();
            _pipeline           = _kernelConfiguration.Components.Get <IPipeline>();
            _exceptionFormatter = _kernelConfiguration.Components.Get <IExceptionFormatter>();

            _contextWithRequestParameters              = CreateContext(_requestWithParameters, _bindingWithoutParameters);
            _contextWithBindingParameters              = CreateContext(_requestWithoutParameters, _bindingWithParameters);
            _contextWithRequestAndBindingParameters    = CreateContext(_requestWithParameters, _bindingWithParameters);
            _contextWithoutRequestAndBindingParameters = CreateContext(_requestWithoutParameters, _bindingWithoutParameters);
        }