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()