internal static string VisualizeInlinedAndTruncatedObjectGraph(this InstanceProducer producer,
                                                                       int maxLength)
        {
            if (!producer.IsExpressionCreated)
            {
                return(ExpressionNotCreatedYetMessage);
            }

            string implementationName = producer.ImplementationType.ToFriendlyName();

            var visualizedDependencies =
                producer.VisualizeInlinedDependencies(maxLength - implementationName.Length - 2);

            return(string.Format(CultureInfo.InvariantCulture, "{0}({1})",
                                 implementationName,
                                 string.Join(", ", visualizedDependencies)));
        }