public static string Print()

in src/Epam.GraphQL/Diagnostics/Internals/DiagnosticsExtensions.cs [15:51]


        public static string Print(this MethodBase methodBase)
        {
            if (TryGetLocalName(methodBase.Name, out var methodBody))
            {
                return methodBody;
            }

            if (IsAnonymous(methodBase.Name))
            {
                return $"{methodBase.PrintArguments()} => ...";
            }

            return methodBase.Name;

            static bool IsAnonymous(string methodName)
            {
                return methodName.Contains('<', StringComparison.Ordinal) && methodName.Contains(">b__", StringComparison.Ordinal);
            }

            static bool TryGetLocalName(string methodName, [NotNullWhen(true)] out string? localName)
            {
                if (methodName.Contains('<', StringComparison.Ordinal))
                {
                    var startPos = methodName.IndexOf(">g__", StringComparison.Ordinal);
                    var endPos = methodName.IndexOf("|", StringComparison.Ordinal);

                    if (startPos >= 0 && endPos >= 0)
                    {
                        localName = methodName.Substring(startPos + 4, endPos - startPos - 4);
                        return true;
                    }
                }

                localName = null;
                return false;
            }
        }