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 override string ToString() => Append(new StringBuilder()).ToString();
public StringBuilder Append(StringBuilder builder) public StringBuilder Append(StringBuilder builder)
=> Append(builder, true);
public StringBuilder Append(StringBuilder builder, bool fullName)
{ {
if (IsAsync) if (IsAsync)
{ {
@ -71,16 +74,16 @@ namespace System.Diagnostics
if (string.IsNullOrEmpty(SubMethod) && !IsLambda) if (string.IsNullOrEmpty(SubMethod) && !IsLambda)
builder.Append("new "); builder.Append("new ");
AppendDeclaringTypeName(builder); AppendDeclaringTypeName(builder, fullName);
} }
else if (Name == ".cctor") else if (Name == ".cctor")
{ {
builder.Append("static "); builder.Append("static ");
AppendDeclaringTypeName(builder); AppendDeclaringTypeName(builder, fullName);
} }
else else
{ {
AppendDeclaringTypeName(builder) AppendDeclaringTypeName(builder, fullName)
.Append(".") .Append(".")
.Append(Name); .Append(Name);
} }
@ -161,9 +164,9 @@ namespace System.Diagnostics
return builder; 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());
}
}
}