Add namespace to frame conditionally (#144)

* take fullTime parametr

* append fullname true/false

* review
This commit is contained in:
Bruno Garcia 2021-01-17 13:47:43 -05:00 committed by GitHub
parent 243029cc29
commit fd2d239eb0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 5 deletions

View File

@ -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;
}
}
}

View File

@ -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());
}
}
}