Пример #1
0
        private T CreateInternal <T>(Type controllerType, HttpContext requestContextHttpContext)
        {
            IDependencyResolver resolver;

            {
                if (requestContextHttpContext.Items.Contains("resolver"))
                {
                    resolver = requestContextHttpContext.Items["resolver"] as IDependencyResolver ??
                               Resolver.CreateScopedResolver();
                }
                else
                {
                    resolver = Resolver.CreateScopedResolver();
                }
            }
            if (!(requestContextHttpContext.Items["resolver"] is IDependencyResolver))
            {
                HttpContext.Current.Items.Add("resolver", resolver);
            }
            var context = resolver.GetService <HttpContextAccessor>();

            context.SetContext(requestContextHttpContext);
            OnCreatingController?.Invoke(resolver, context, controllerType);
            var controller = (T)controllerType.Activate(Scope.Context, resolver);

            OnControllerCreated?.Invoke(resolver, context, controller);
            return(controller);
        }
Пример #2
0
        public IHttpController Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType)
        {
            var controller = (IHttpController)controllerType.Activate(Scope.PerRequest);

            InitalizeController(request, controller);
            return(controller);
        }
        IController IControllerActivator.Create(RequestContext requestContext, Type controllerType)
        {
            var controller = (IController)controllerType.Activate(Scope.PerRequest);

            InitializeController(requestContext, controller);
            return(controller);
        }
Пример #4
0
 public void Activate()
 {
     if (IsActive)
     {
         return;
     }
     Type.Activate(this);
     if (OnActivate != null)
     {
         OnActivate(this);
     }
     frames = 0;
     time   = 0f;
 }
Пример #5
0
        public void CreateDummyTypeConstructorTest()
        {
            Type type = TypeHelper.CreateDummyType("Test2", typeof(TestClass), true);
            var  defaultConstructorInstance = (TestClass)type.Activate(null);

            Assert.AreEqual(defaultConstructorInstance.value, "Default Constructor");
            var customConstructorInstance1 = (TestClass)type.Activate(null, "Custom constructor");

            Assert.AreEqual(customConstructorInstance1.value, "Custom constructor");
            var customConstructorInstance2 = (TestClass)type.Activate(null, 11, "test");

            Assert.AreEqual(customConstructorInstance2.value, "11test");
            var methods = type.GetMethods(BindingFlags.NonPublic | BindingFlags.Static);

            Assert.AreEqual(3, methods.Length);
            var ctor1 = (TestClass)methods[0].Invoke(null, BindingFlags.Static | BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.NonPublic, null, new object[0], null);
            var ctor2 = (TestClass)methods[1].Invoke(null, BindingFlags.Static | BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.NonPublic, null, new object[] { "Custom constructor" }, null);
            var ctor3 = (TestClass)methods[2].Invoke(null, BindingFlags.Static | BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.NonPublic, null, new object[] { 11, "test" }, null);

            Assert.AreEqual(ctor1.value, defaultConstructorInstance.value);
            Assert.AreEqual(ctor2.value, customConstructorInstance1.value);
            Assert.AreEqual(ctor3.value, customConstructorInstance2.value);
        }
Пример #6
0
        /// <inheritdoc/>
        protected override TAssociate CreateAssociate <TKey, TAssociate>(out Type foundFor)
        {
            TAssociate associate = base.CreateAssociate <TKey, TAssociate>(out foundFor);

            if (associate != null)
            {
                return(associate);
            }
            // Ok, null, but probably just because type cast has failed;
            // let's try to wrap it. TKey is type for which we're getting
            // the comparer.
            IAdvancedComparerBase comparer = base.CreateAssociate <TKey, IAdvancedComparerBase>(out foundFor);

            if (foundFor == null)
            {
                CoreLog.Warning(Strings.LogCantFindAssociateFor,
                                TypeSuffixes.ToDelimitedString(" \\ "),
                                typeof(TAssociate).GetShortName(),
                                typeof(TKey).GetShortName());
                return(null);
            }
            if (foundFor == typeof(TKey))
            {
                return((TAssociate)comparer);
            }
            Type baseComparerWrapperType = typeof(BaseComparerWrapper <,>);

            associate =
                baseComparerWrapperType.Activate(new Type[] { typeof(TKey), foundFor }, ConstructorParams) as
                TAssociate;
            if (associate != null)
            {
                CoreLog.Warning(Strings.LogGenericAssociateIsUsedFor,
                                baseComparerWrapperType.GetShortName(),
                                typeof(TKey).GetShortName(),
                                foundFor.GetShortName(),
                                typeof(TKey).GetShortName());
                return(associate);
            }
            else
            {
                CoreLog.Warning(Strings.LogGenericAssociateCreationHasFailedFor,
                                baseComparerWrapperType.GetShortName(),
                                typeof(TKey).GetShortName(),
                                foundFor.GetShortName(),
                                typeof(TKey).GetShortName());
                return(null);
            }
        }
        public IAdvancedConverter <TTo, TFrom> CreateBackwardConverter <TTo>()
        {
            Type fromType = typeof(TFrom);
            Type toType   = typeof(TTo);

            if (fromType.IsAssignableFrom(toType))
            {
                Type[] genericArguments = new Type[] { toType, fromType };
                Type   genericType      = typeof(ObjectToBaseAdvancedConverter <,>);
                return(genericType.Activate(genericArguments, provider) as IAdvancedConverter <TTo, TFrom>);
            }
            else if (toType.IsAssignableFrom(fromType))
            {
                Type[] genericArguments = new Type[] { toType, fromType };
                Type   genericType      = typeof(ObjectToDescendantAdvancedConverter <,>);
                return(genericType.Activate(genericArguments, provider) as IAdvancedConverter <TTo, TFrom>);
            }
            return(null);
        }
Пример #8
0
        private static IdentityConfiguration ConfigureWithExternalModules()
        {
            var identitySettings = FederatedAuthentication.FederationConfiguration.IdentityConfiguration;

            identitySettings.SaveBootstrapContext             = true;
            identitySettings.AudienceRestriction.AudienceMode = AudienceUriMode.Always;
            if (AuthorizationManager != null)
            {
                identitySettings.ClaimsAuthenticationManager = AuthorizationManager.Activate <ClaimsAuthenticationManager>();
                Logging.DebugMessage("AuthenticationManager obtained");
            }
            if (CahceModule.IsInstance())
            {
                identitySettings.Caches.SessionSecurityTokenCache = CahceModule.Activate <SessionSecurityTokenCache>();
                Logging.DebugMessage("SessionSecurityTokenCache obtained");
            }
            Logging.DebugMessage("Identity settings obtained. External components added.");
            return(identitySettings);
        }
Пример #9
0
 public object GetInstance(InstanceContext instanceContext, Message message)
 {
     return(ServiceType.Activate(Scope.PerRequest));
 }
Пример #10
0
 public IController Create(RequestContext requestContext, Type controllerType)
 {
     return((IController)controllerType.Activate());
 }