/// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="container">Container.</param>
        /// <param name="registeredType">Registered type.</param>
        /// <param name="implementationType">Implementation type.</param>
        public RegistrationBase(XerContainer container, Type registeredType, Type implementationType)
        {
            Container              = container;
            RegisteredType         = registeredType;
            RegisteredTypeInfo     = registeredType.GetTypeInfo();
            ImplementationType     = implementationType;
            ImplementationTypeInfo = implementationType.GetTypeInfo();

            _constructor = LazyLoad(() =>
                                    Container.Options.ConstructorSelector.SelectConstructor(ImplementationTypeInfo));

            _injectableProperties = LazyLoad(() =>
                                             Container.Options.InjectablePropertiesSelector.SelectProperties(ImplementationTypeInfo));

            _constructorDependencies = LazyLoad(() =>
                                                GetConstructorDependencies(Constructor));

            _propertyDependencies = LazyLoad(() =>
                                             GetPropertyDependencies(InjectableProperties));

            // Create builder.
            InstanceFactoryBuilder = CreateInstanceFactoryBuilder(this);
        }
Esempio n. 2
0
 internal LifetimeScope(XerContainer container, string scopeName)
 {
     _container = container;
     ScopeName  = scopeName;
 }
 public SingletonRegistration(XerContainer container, Type contractType, object instance)
     : base(container, contractType, instance.GetType())
 {
     // Add to container's singleton scope.
     Container.SingletonScope.AddToScope(this, instance);
 }
 public SingletonRegistration(XerContainer container, Type contractType, Type implementationType)
     : base(container, contractType, implementationType)
 {
 }
 public LifetimeScopeManager(XerContainer container)
 {
     _contaner = container;
 }
 internal ControlledLifetimeScope(XerContainer container, string scopeName)
     : base(container, scopeName)
 {
 }
        //public override LifetimeScope LifetimeScope => new TransientLifetimeScope(Container);

        public TransientRegistration(XerContainer container, Type interfaceType, Type implementationType)
            : base(container, interfaceType, implementationType)
        {
        }