/// <summary>
        /// Assembles all argument services and creates instance
        /// </summary>
        /// <param name="context">Context used to create instances.</param>
        /// <returns>Created instance.</returns>
        protected virtual object Create(CreateContext context)
        {
            var parameters = new object[_parameters.Length];

            for (var i = 0; i < parameters.Length; i++)
            {
                var    paramContext = context.Clone(_parameters[i].ServiceType);
                object instance;
                _parameters[i].BuildPlan.GetInstance(paramContext, out instance);
                parameters[i] = instance;
            }

            return(Create(context, parameters));
        }
        /// <summary>
        /// Assembles all argument services and creates instance
        /// </summary>
        /// <param name="context">Context used to create instances.</param>
        /// <returns>Created instance.</returns>
        protected virtual object Create(CreateContext context)
        {
            var parameters = new object[_parameters.Length];
            for (var i = 0; i < parameters.Length; i++)
            {
                var paramContext = context.Clone(_parameters[i].ServiceType);
                object instance;
                _parameters[i].BuildPlan.GetInstance(paramContext, out instance);
                parameters[i] = instance;
            }

            return Create(context, parameters);
        }