diff --git a/src/Ben.Demystifier/ResolvedMethod.cs b/src/Ben.Demystifier/ResolvedMethod.cs index a674cb5..6f095e2 100644 --- a/src/Ben.Demystifier/ResolvedMethod.cs +++ b/src/Ben.Demystifier/ResolvedMethod.cs @@ -51,6 +51,9 @@ namespace System.Diagnostics public override string ToString() => Append(new StringBuilder()).ToString(); public StringBuilder Append(StringBuilder builder) + => Append(builder, true); + + public StringBuilder Append(StringBuilder builder, bool fullName) { if (IsAsync) { @@ -71,16 +74,16 @@ namespace System.Diagnostics if (string.IsNullOrEmpty(SubMethod) && !IsLambda) builder.Append("new "); - AppendDeclaringTypeName(builder); + AppendDeclaringTypeName(builder, fullName); } else if (Name == ".cctor") { builder.Append("static "); - AppendDeclaringTypeName(builder); + AppendDeclaringTypeName(builder, fullName); } else { - AppendDeclaringTypeName(builder) + AppendDeclaringTypeName(builder, fullName) .Append(".") .Append(Name); } @@ -161,9 +164,9 @@ namespace System.Diagnostics return builder; } - private StringBuilder AppendDeclaringTypeName(StringBuilder builder) + private StringBuilder AppendDeclaringTypeName(StringBuilder builder, bool fullName = true) { - return DeclaringType != null ? builder.AppendTypeDisplayName(DeclaringType, fullName: true, includeGenericParameterNames: true) : builder; + return DeclaringType != null ? builder.AppendTypeDisplayName(DeclaringType, fullName: fullName, includeGenericParameterNames: true) : builder; } } } diff --git a/test/Ben.Demystifier.Test/ResolvedMethodTests.cs b/test/Ben.Demystifier.Test/ResolvedMethodTests.cs new file mode 100644 index 0000000..008b554 --- /dev/null +++ b/test/Ben.Demystifier.Test/ResolvedMethodTests.cs @@ -0,0 +1,26 @@ +using System.Diagnostics; +using System.Linq; +using System.Text; +using Xunit; + +namespace Ben.Demystifier.Test +{ + public class ResolvedMethodTests + { + [Fact] + public void AppendWithFullNameTrueTest() + { + var resolvedMethod = EnhancedStackTrace.GetMethodDisplayString(GetType().GetMethods().First(m => m.Name == nameof(AppendWithFullNameTrueTest))); + var sb = new StringBuilder(); + Assert.Equal($"void {GetType().Namespace}.{GetType().Name}.{nameof(AppendWithFullNameTrueTest)}()", resolvedMethod.Append(sb).ToString()); + } + + [Fact] + public void AppendWithFullNameFalseTest() + { + var resolvedMethod = EnhancedStackTrace.GetMethodDisplayString(GetType().GetMethods().First(m => m.Name == nameof(AppendWithFullNameFalseTest))); + var sb = new StringBuilder(); + Assert.Equal($"void {GetType().Name}.{nameof(AppendWithFullNameFalseTest)}()", resolvedMethod.Append(sb, false).ToString()); + } + } +}