Beispiel #1
0
        public IConstructorApi CreateRegistrationProvider(Kernel kernel, Type contractType, Type concreteType)
        {
            var registrationProviderType =
                typeof(ReflectionOrEmitRegistrationProvider <>).MakeGenericType(contractType);

            try
            {
                var objProvider = Activator.CreateInstance(registrationProviderType, kernel);
                _provider = objProvider as TypedRegistrationProvider;
                if (_provider == null)
                {
                    throw new ImpossibleException();
                }
            }
            catch (TargetInvocationException ex)
            {
                throw ex.InnerException;
            }

            _provider.ActivatorKind = ActivatorKind.Default;
            _provider.ContractType  = contractType;
            _provider.ConcreteType  = concreteType;

            SetRegistrationProvider(_provider);
            return(this);
        }
Beispiel #2
0
        public IConstructorApi CreateRegistrationProvider <T>(Kernel kernel, Type concreteType)
            where T : class
        {
            _provider = new ReflectionOrEmitRegistrationProvider <T>(kernel)
            {
                ConcreteType  = concreteType,
                ContractType  = typeof(T),
                ActivatorKind = ActivatorKind.Default
            };

            SetRegistrationProvider(_provider);
            return(this);
        }