diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/JsonPropertyInfo.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/JsonPropertyInfo.cs index 0fd92f270a65a3..86c72cf1e425d1 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/JsonPropertyInfo.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/JsonPropertyInfo.cs @@ -11,7 +11,7 @@ namespace System.Text.Json.Serialization.Metadata /// /// Provides JSON serialization-related metadata about a property or field. /// - [DebuggerDisplay("MemberInfo={MemberInfo}")] + [DebuggerDisplay("{DebuggerDisplay,nq}")] [EditorBrowsable(EditorBrowsableState.Never)] public abstract class JsonPropertyInfo { @@ -519,5 +519,8 @@ internal JsonTypeInfo JsonTypeInfo /// Default value used for parameterized ctor invocation. /// internal abstract object? DefaultValue { get; } + + [DebuggerBrowsable(DebuggerBrowsableState.Never)] + private string DebuggerDisplay => $"MemberInfo={MemberInfo}"; } } diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/JsonTypeInfo.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/JsonTypeInfo.cs index d1486a342933e5..49d571464a4c27 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/JsonTypeInfo.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Metadata/JsonTypeInfo.cs @@ -14,7 +14,7 @@ namespace System.Text.Json.Serialization.Metadata /// Provides JSON serialization-related metadata about a type. /// /// This API is for use by the output of the System.Text.Json source generator and should not be called directly. - [DebuggerDisplay("ConverterStrategy.{ConverterStrategy}, {Type.Name}")] + [DebuggerDisplay("{DebuggerDisplay,nq}")] [EditorBrowsable(EditorBrowsableState.Never)] public partial class JsonTypeInfo { @@ -632,5 +632,8 @@ private static bool IsByRefLike(Type type) return numberHandlingAttribute?.Handling; } + + [DebuggerBrowsable(DebuggerBrowsableState.Never)] + private string DebuggerDisplay => $"ConverterStrategy.{PropertyInfoForTypeInfo.ConverterStrategy}, {Type.Name}"; } } diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/ReadStack.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/ReadStack.cs index 0db9ef4650c02c..7b5cbb724ce5bb 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/ReadStack.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/ReadStack.cs @@ -10,7 +10,7 @@ namespace System.Text.Json { - [DebuggerDisplay("Path:{JsonPath()} Current: ConverterStrategy.{Current.JsonTypeInfo.PropertyInfoForTypeInfo.ConverterStrategy}, {Current.JsonTypeInfo.Type.Name}")] + [DebuggerDisplay("{DebuggerDisplay,nq}")] internal struct ReadStack { internal static readonly char[] SpecialCharacters = { '.', ' ', '\'', '/', '"', '[', ']', '(', ')', '\t', '\n', '\r', '\f', '\b', '\\', '\u0085', '\u2028', '\u2029' }; @@ -355,5 +355,8 @@ private void SetConstructorArgumentState() } } } + + [DebuggerBrowsable(DebuggerBrowsableState.Never)] + private string DebuggerDisplay => $"Path:{JsonPath()} Current: ConverterStrategy.{Current.JsonTypeInfo?.PropertyInfoForTypeInfo.ConverterStrategy}, {Current.JsonTypeInfo?.Type.Name}"; } } diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/ReadStackFrame.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/ReadStackFrame.cs index 137305f1d5b431..23c434cd8d936c 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/ReadStackFrame.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/ReadStackFrame.cs @@ -8,7 +8,7 @@ namespace System.Text.Json { - [DebuggerDisplay("ConverterStrategy.{JsonTypeInfo.PropertyInfoForTypeInfo.ConverterStrategy}, {JsonTypeInfo.Type.Name}")] + [DebuggerDisplay("{DebuggerDisplay,nq}")] internal struct ReadStackFrame { // Current property values. @@ -89,5 +89,8 @@ public bool IsProcessingEnumerable() { return (JsonTypeInfo.PropertyInfoForTypeInfo.ConverterStrategy & ConverterStrategy.Enumerable) != 0; } + + [DebuggerBrowsable(DebuggerBrowsableState.Never)] + private string DebuggerDisplay => $"ConverterStrategy.{JsonTypeInfo?.PropertyInfoForTypeInfo.ConverterStrategy}, {JsonTypeInfo?.Type.Name}"; } } diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/WriteStack.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/WriteStack.cs index f966a1a77cb7a0..c1c0ddc3844de5 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/WriteStack.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/WriteStack.cs @@ -12,7 +12,7 @@ namespace System.Text.Json { - [DebuggerDisplay("Path:{PropertyPath()} Current: ConverterStrategy.{ConverterStrategy.JsonTypeInfo.PropertyInfoForTypeInfo.ConverterStrategy}, {Current.JsonTypeInfo.Type.Name}")] + [DebuggerDisplay("{DebuggerDisplay,nq}")] internal struct WriteStack { /// @@ -375,5 +375,8 @@ static void AppendPropertyName(StringBuilder sb, string? propertyName) } } } + + [DebuggerBrowsable(DebuggerBrowsableState.Never)] + private string DebuggerDisplay => $"Path:{PropertyPath()} Current: ConverterStrategy.{Current.JsonPropertyInfo?.ConverterStrategy}, {Current.JsonTypeInfo?.Type.Name}"; } } diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/WriteStackFrame.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/WriteStackFrame.cs index de718fc366b926..1222997142e8c6 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/WriteStackFrame.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/WriteStackFrame.cs @@ -8,7 +8,7 @@ namespace System.Text.Json { - [DebuggerDisplay("ConverterStrategy.{JsonTypeInfo.PropertyInfoForTypeInfo.ConverterStrategy}, {JsonTypeInfo.Type.Name}")] + [DebuggerDisplay("{DebuggerDisplay,nq}")] internal struct WriteStackFrame { /// @@ -120,5 +120,8 @@ public JsonConverter InitializeReEntry(Type type, JsonSerializerOptions options) return PolymorphicJsonPropertyInfo.ConverterBase; } + + [DebuggerBrowsable(DebuggerBrowsableState.Never)] + private string DebuggerDisplay => $"ConverterStrategy.{JsonTypeInfo?.PropertyInfoForTypeInfo.ConverterStrategy}, {JsonTypeInfo?.Type.Name}"; } }