Update doc and generic parameter name for JsonValue.GetValue (#56639)
authorSteve Harter <steveharter@users.noreply.github.com>
Tue, 3 Aug 2021 14:17:57 +0000 (09:17 -0500)
committerGitHub <noreply@github.com>
Tue, 3 Aug 2021 14:17:57 +0000 (09:17 -0500)
src/libraries/System.Text.Json/ref/System.Text.Json.cs
src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonNode.cs
src/libraries/System.Text.Json/src/System/Text/Json/Nodes/JsonValue.cs

index 99a987c57929171402842f09f373851381912ac6..757d8d63d51338602ecfda123ea25adc03f0ca92 100644 (file)
@@ -595,7 +595,7 @@ namespace System.Text.Json.Nodes
         public System.Text.Json.Nodes.JsonObject AsObject() { throw null; }
         public System.Text.Json.Nodes.JsonValue AsValue() { throw null; }
         public string GetPath() { throw null; }
-        public virtual TValue GetValue<TValue>() { throw null; }
+        public virtual T GetValue<T>() { throw null; }
         public static explicit operator bool (System.Text.Json.Nodes.JsonNode value) { throw null; }
         public static explicit operator byte (System.Text.Json.Nodes.JsonNode value) { throw null; }
         public static explicit operator char (System.Text.Json.Nodes.JsonNode value) { throw null; }
index 6de74aef8ec3b6ca29b4037d0e8b855a06bdc859..71ccc3f4b24b32453b0ab9408375d3dc934ab96c 100644 (file)
@@ -2,7 +2,6 @@
 // The .NET Foundation licenses this file to you under the MIT license.
 
 using System.Collections.Generic;
-using System.Diagnostics.CodeAnalysis;
 
 namespace System.Text.Json.Nodes
 {
@@ -165,14 +164,23 @@ namespace System.Text.Json.Nodes
         /// <summary>
         ///   Gets the value for the current <see cref="JsonValue"/>.
         /// </summary>
+        /// <remarks>
+        ///   {T} can be the type or base type of the underlying value.
+        ///   If the underlying value is a <see cref="JsonElement"/> then {T} can also be the type of any primitive
+        ///   value supported by current <see cref="JsonElement"/>.
+        ///   Specifying the <see cref="object"/> type for {T} will always succeed and return the underlying value as <see cref="object"/>.<br />
+        ///   The underlying value of a <see cref="JsonValue"/> after deserialization is an instance of <see cref="JsonElement"/>,
+        ///   otherwise it's the value specified when the <see cref="JsonValue"/> was created.
+        /// </remarks>
+        /// <seealso cref="System.Text.Json.Nodes.JsonValue.TryGetValue"></seealso>
         /// <exception cref="FormatException">
-        ///   The current <see cref="JsonNode"/> cannot be represented as a {TValue}.
+        ///   The current <see cref="JsonNode"/> cannot be represented as a {T}.
         /// </exception>
         /// <exception cref="InvalidOperationException">
         ///   The current <see cref="JsonNode"/> is not a <see cref="JsonValue"/> or
-        ///   is not compatible with {TValue}.
+        ///   is not compatible with {T}.
         /// </exception>
-        public virtual TValue GetValue<TValue>() =>
+        public virtual T GetValue<T>() =>
             throw new InvalidOperationException(SR.Format(SR.NodeWrongType, nameof(JsonValue)));
 
         /// <summary>
index 1d0eb05631c47b4226a3a9474ab6e62dd7b471d9..87b6953f46765ba1da1d9a5228b227a80ad892b1 100644 (file)
@@ -99,6 +99,15 @@ namespace System.Text.Json.Nodes
         /// <summary>
         ///   Tries to obtain the current JSON value and returns a value that indicates whether the operation succeeded.
         /// </summary>
+        /// <remarks>
+        ///   {T} can be the type or base type of the underlying value.
+        ///   If the underlying value is a <see cref="JsonElement"/> then {T} can also be the type of any primitive
+        ///   value supported by current <see cref="JsonElement"/>.
+        ///   Specifying the <see cref="object"/> type for {T} will always succeed and return the underlying value as <see cref="object"/>.<br />
+        ///   The underlying value of a <see cref="JsonValue"/> after deserialization is an instance of <see cref="JsonElement"/>,
+        ///   otherwise it's the value specified when the <see cref="JsonValue"/> was created.
+        /// </remarks>
+        /// <seealso cref="JsonNode.GetValue{T}"></seealso>
         /// <typeparam name="T">The type of value to obtain.</typeparam>
         /// <param name="value">When this method returns, contains the parsed value.</param>
         /// <returns><see langword="true"/> if the value can be successfully obtained; otherwise, <see langword="false"/>.</returns>