private void ApplyInjectionPoints(
            object target, Type targetType, TypeDescription description)
        {
            InjectionPoint injectionPoint = description.injectionPoints;

            if (_preConstruct != null)
            {
                _preConstruct(target, targetType);
            }
            while (injectionPoint != null)
            {
                injectionPoint.ApplyInjection(target, targetType, this);
                injectionPoint = injectionPoint.next;
            }
            if (description.preDestroyMethods != null)
            {
                _managedObjects[target] = target;
            }
            if (_postConstruct != null)
            {
                _postConstruct(target, targetType);
            }
        }