diff --git a/docs/project/list-of-diagnostics.md b/docs/project/list-of-diagnostics.md index 0e3f10d2df6c3d..2f8dbde222f0f5 100644 --- a/docs/project/list-of-diagnostics.md +++ b/docs/project/list-of-diagnostics.md @@ -114,6 +114,7 @@ The PR that reveals the implementation of the ` + [Obsolete(Obsoletions.JsonNodeWriteToMessage, DiagnosticId = Obsoletions.JsonNodeWriteToDiagId)] public override void WriteTo(Utf8JsonWriter writer, JsonSerializerOptions? options = null) { if (writer is null) diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonNode.To.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonNode.To.cs index 34b12052d31d18..d1b548b49a0ccf 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonNode.To.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonNode.To.cs @@ -25,7 +25,9 @@ public string ToJsonString(JsonSerializerOptions? options = null) Utf8JsonWriter writer = Utf8JsonWriterCache.RentWriterAndBuffer(writerOptions, defaultBufferSize, out PooledByteBufferWriter output); try { +#pragma warning disable SYSLIB0060 // Type or member is obsolete WriteTo(writer, options); +#pragma warning restore SYSLIB0060 // Type or member is obsolete writer.Flush(); return JsonHelpers.Utf8GetString(output.WrittenMemory.Span); } @@ -58,7 +60,9 @@ public override string ToString() Utf8JsonWriter writer = Utf8JsonWriterCache.RentWriterAndBuffer(new JsonWriterOptions { Indented = true }, JsonSerializerOptions.BufferSizeDefault, out PooledByteBufferWriter output); try { +#pragma warning disable SYSLIB0060 // Type or member is obsolete WriteTo(writer); +#pragma warning restore SYSLIB0060 // Type or member is obsolete writer.Flush(); return JsonHelpers.Utf8GetString(output.WrittenMemory.Span); } @@ -76,6 +80,7 @@ public override string ToString() /// The parameter is . /// /// Options to control the serialization behavior. + [Obsolete(Obsoletions.JsonNodeWriteToMessage, DiagnosticId = Obsoletions.JsonNodeWriteToDiagId)] public abstract void WriteTo(Utf8JsonWriter writer, JsonSerializerOptions? options = null); } } diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonObject.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonObject.cs index 9844bb59207cf4..c39a99e0257df2 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonObject.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonObject.cs @@ -129,6 +129,7 @@ public bool TryGetPropertyValue(string propertyName, out JsonNode? jsonNode) } /// + [Obsolete(Obsoletions.JsonNodeWriteToMessage, DiagnosticId = Obsoletions.JsonNodeWriteToDiagId)] public override void WriteTo(Utf8JsonWriter writer, JsonSerializerOptions? options = null) { if (writer is null) diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValue.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValue.cs index d93546cdf92e42..ba62525c2efe14 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValue.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValue.cs @@ -141,7 +141,9 @@ static JsonElement ToJsonElement(JsonNode node, out JsonDocument? backingDocumen try { +#pragma warning disable SYSLIB0060 // Type or member is obsolete node.WriteTo(writer); +#pragma warning restore SYSLIB0060 // Type or member is obsolete writer.Flush(); Utf8JsonReader reader = new(output.WrittenMemory.Span); backingDocument = JsonDocument.ParseValue(ref reader); diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValueOfElement.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValueOfElement.cs index ddccceb8250330..d4449a5dd256cd 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValueOfElement.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValueOfElement.cs @@ -194,6 +194,7 @@ public override bool TryGetValue([NotNullWhen(true)] out TypeToCo return false; } + [Obsolete(Obsoletions.JsonNodeWriteToMessage, DiagnosticId = Obsoletions.JsonNodeWriteToDiagId)] public override void WriteTo(Utf8JsonWriter writer, JsonSerializerOptions? options = null) { if (writer is null) diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValueOfTCustomized.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValueOfTCustomized.cs index 589a8ec8e5556f..f698eae4f0ee8d 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValueOfTCustomized.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValueOfTCustomized.cs @@ -26,6 +26,8 @@ public JsonValueCustomized(TValue value, JsonTypeInfo jsonTypeInfo, Json private protected override JsonValueKind GetValueKindCore() => _valueKind ??= ComputeValueKind(); internal override JsonNode DeepCloneCore() => JsonSerializer.SerializeToNode(Value, _jsonTypeInfo)!; + + [Obsolete(Obsoletions.JsonNodeWriteToMessage, DiagnosticId = Obsoletions.JsonNodeWriteToDiagId)] public override void WriteTo(Utf8JsonWriter writer, JsonSerializerOptions? options = null) { if (writer is null) @@ -52,7 +54,9 @@ private JsonValueKind ComputeValueKind() Utf8JsonWriter writer = Utf8JsonWriterCache.RentWriterAndBuffer(options: default, JsonSerializerOptions.BufferSizeDefault, out PooledByteBufferWriter output); try { +#pragma warning disable SYSLIB0060 // Type or member is obsolete WriteTo(writer); +#pragma warning restore SYSLIB0060 // Type or member is obsolete writer.Flush(); Utf8JsonReader reader = new(output.WrittenMemory.Span); bool success = reader.Read(); diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValueOfTPrimitive.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValueOfTPrimitive.cs index fce1d5fbf04cf4..8f56b824f53b50 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValueOfTPrimitive.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValueOfTPrimitive.cs @@ -39,6 +39,7 @@ internal override bool DeepEqualsCore(JsonNode otherNode) return base.DeepEqualsCore(otherNode); } + [Obsolete(Obsoletions.JsonNodeWriteToMessage, DiagnosticId = Obsoletions.JsonNodeWriteToDiagId)] public override void WriteTo(Utf8JsonWriter writer, JsonSerializerOptions? options = null) { if (writer is null) diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonArrayConverter.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonArrayConverter.cs index f30821770a1824..48130fd2694eaa 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonArrayConverter.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonArrayConverter.cs @@ -17,7 +17,9 @@ public override void Write(Utf8JsonWriter writer, JsonArray? value, JsonSerializ return; } +#pragma warning disable SYSLIB0060 // Type or member is obsolete value.WriteTo(writer, options); +#pragma warning restore SYSLIB0060 // Type or member is obsolete } public override JsonArray? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonNodeConverter.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonNodeConverter.cs index a88039e2a42117..b481942edf9ab7 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonNodeConverter.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonNodeConverter.cs @@ -32,7 +32,9 @@ public override void Write(Utf8JsonWriter writer, JsonNode? value, JsonSerialize } else { +#pragma warning disable SYSLIB0060 // Type or member is obsolete value.WriteTo(writer, options); +#pragma warning restore SYSLIB0060 // Type or member is obsolete } } diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonObjectConverter.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonObjectConverter.cs index 44f81126d7a65d..b42986d2461dfa 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonObjectConverter.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonObjectConverter.cs @@ -42,7 +42,9 @@ public override void Write(Utf8JsonWriter writer, JsonObject? value, JsonSeriali return; } +#pragma warning disable SYSLIB0060 // Type or member is obsolete value.WriteTo(writer, options); +#pragma warning restore SYSLIB0060 // Type or member is obsolete } public override JsonObject? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonValueConverter.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonValueConverter.cs index b912ed898b42bd..38feaf94d9c779 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonValueConverter.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/Converters/Node/JsonValueConverter.cs @@ -17,7 +17,9 @@ public override void Write(Utf8JsonWriter writer, JsonValue? value, JsonSerializ return; } +#pragma warning disable SYSLIB0060 // Type or member is obsolete value.WriteTo(writer, options); +#pragma warning restore SYSLIB0060 // Type or member is obsolete } public override JsonValue? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) diff --git a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializer.Read.Node.cs b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializer.Read.Node.cs index b22be1ceec6762..5754bfd7a4082d 100644 --- a/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializer.Read.Node.cs +++ b/src/libraries/System.Text.Json/src/System/Text/Json/Serialization/JsonSerializer.Read.Node.cs @@ -165,7 +165,9 @@ public static partial class JsonSerializer } else { +#pragma warning disable SYSLIB0060 // Type or member is obsolete node.WriteTo(writer, options); +#pragma warning restore SYSLIB0060 // Type or member is obsolete } } @@ -186,7 +188,9 @@ public static partial class JsonSerializer } else { +#pragma warning disable SYSLIB0060 // Type or member is obsolete node.WriteTo(writer, options); +#pragma warning restore SYSLIB0060 // Type or member is obsolete } } diff --git a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/JsonNode/JsonArrayTests.cs b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/JsonNode/JsonArrayTests.cs index e4c788e901e480..72e132d774f8be 100644 --- a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/JsonNode/JsonArrayTests.cs +++ b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/JsonNode/JsonArrayTests.cs @@ -56,6 +56,7 @@ public static void FromElement_WrongNodeTypeThrows(string json) Assert.Throws(() => JsonArray.Create(document.RootElement)); } +#pragma warning disable SYSLIB0060 // Type or member is obsolete [Fact] public static void WriteTo_Validation() { @@ -104,6 +105,7 @@ public static void WriteTo_Options() json = Encoding.UTF8.GetString(stream.ToArray()); Assert.Equal("[\"42\"]", json); } +#pragma warning restore SYSLIB0060 // Type or member is obsolete [Fact] public static void Clear() diff --git a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/JsonNode/JsonObjectTests.cs b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/JsonNode/JsonObjectTests.cs index ac8258de22d71e..dc223d21dacffa 100644 --- a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/JsonNode/JsonObjectTests.cs +++ b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/JsonNode/JsonObjectTests.cs @@ -326,6 +326,7 @@ public static void FromElement_WrongNodeTypeThrows(string json) } } +#pragma warning disable SYSLIB0060 // Type or member is obsolete [Fact] public static void WriteTo_Validation() { @@ -346,6 +347,7 @@ public static void WriteTo() string json = Encoding.UTF8.GetString(stream.ToArray()); Assert.Equal(Json, json); } +#pragma warning restore SYSLIB0060 // Type or member is obsolete [Fact] public static void CopyTo() diff --git a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/JsonNode/JsonValueTests.cs b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/JsonNode/JsonValueTests.cs index 29ae9662eedd4b..156ffddde55f35 100644 --- a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/JsonNode/JsonValueTests.cs +++ b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/JsonNode/JsonValueTests.cs @@ -288,6 +288,7 @@ public static void FromElement_WrongNodeTypeThrows(string json) Assert.Throws(() => JsonValue.Create(document.RootElement)); } +#pragma warning disable SYSLIB0060 // Type or member is obsolete [Fact] public static void WriteTo_Validation() { @@ -308,6 +309,7 @@ public static void WriteTo() string json = Encoding.UTF8.GetString(stream.ToArray()); Assert.Equal(Json, json); } +#pragma warning restore SYSLIB0060 // Type or member is obsolete [Fact] public static void DeepCloneNotTrimmable()