diff --git a/src/JsonParseNode.cs b/src/JsonParseNode.cs
index dd311e8..e66b192 100644
--- a/src/JsonParseNode.cs
+++ b/src/JsonParseNode.cs
@@ -101,7 +101,7 @@ public JsonParseNode(JsonElement node)
public DateTimeOffset? GetDateTimeOffsetValue()
{
// JsonElement.GetDateTimeOffset is super strict so try to be more lenient if it fails(e.g. when we have whitespace or other variant formats).
- // ref - https://docs.microsoft.com/en-us/dotnet/standard/datetime/system-text-json-support
+ // ref - https://learn.microsoft.com/dotnet/standard/datetime/system-text-json-support
if(!_jsonNode.TryGetDateTimeOffset(out var value))
value = DateTimeOffset.Parse(_jsonNode.GetString()!);
diff --git a/src/JsonSerializationWriter.cs b/src/JsonSerializationWriter.cs
index b38c12c..e791534 100644
--- a/src/JsonSerializationWriter.cs
+++ b/src/JsonSerializationWriter.cs
@@ -237,7 +237,7 @@ public void WriteNullValue(string? key)
/// The key of the json node
/// The enumeration value
#if NET5_0_OR_GREATER
- public void WriteEnumValue<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)]T>(string? key, T? value) where T : struct, Enum
+ public void WriteEnumValue<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] T>(string? key, T? value) where T : struct, Enum
#else
public void WriteEnumValue(string? key, T? value) where T : struct, Enum
#endif
@@ -246,7 +246,12 @@ public void WriteEnumValue(string? key, T? value) where T : struct, Enum
if(value.HasValue)
{
if(typeof(T).GetCustomAttributes().Any())
- writer.WriteStringValue(Enum.GetValues(typeof(T))
+ writer.WriteStringValue(
+#if NET5_0_OR_GREATER
+ Enum.GetValues()
+#else
+ Enum.GetValues(typeof(T))
+#endif
.Cast()
.Where(x => value.Value.HasFlag(x))
.Select(GetEnumName)
@@ -316,7 +321,7 @@ public void WriteCollectionOfEnumValues(string? key, IEnumerable? values)
public void WriteByteArrayValue(string? key, byte[]? value)
{
if(value != null)//empty array is meaningful
- WriteStringValue(key, value.Any() ? Convert.ToBase64String(value) : string.Empty);
+ WriteStringValue(key, value.Length > 0 ? Convert.ToBase64String(value) : string.Empty);
}
///
@@ -328,7 +333,7 @@ public void WriteByteArrayValue(string? key, byte[]? value)
public void WriteObjectValue(string? key, T? value, params IParsable?[] additionalValuesToMerge) where T : IParsable
{
var filteredAdditionalValuesToMerge = additionalValuesToMerge.OfType().ToArray();
- if(value != null || filteredAdditionalValuesToMerge.Any())
+ if(value != null || filteredAdditionalValuesToMerge.Length > 0)
{
if(!string.IsNullOrEmpty(key)) writer.WritePropertyName(key!);
if(value != null) OnBeforeObjectSerialization?.Invoke(value);
@@ -452,7 +457,7 @@ public void Dispose()
GC.SuppressFinalize(this);
}
#if NET5_0_OR_GREATER
- private static string? GetEnumName<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)]T>(T value) where T : struct, Enum
+ private static string? GetEnumName<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicFields)] T>(T value) where T : struct, Enum
#else
private static string? GetEnumName(T value) where T : struct, Enum
#endif
@@ -462,7 +467,7 @@ public void Dispose()
if (Enum.GetName(type, value) is not { } name)
throw new ArgumentException($"Invalid Enum value {value} for enum of type {type}");
- if (type.GetMember(name).FirstOrDefault()?.GetCustomAttribute() is { } attribute)
+ if (type.GetField(name)?.GetCustomAttribute() is { } attribute)
return attribute.Value;
return name.ToFirstCharacterLowerCase();
diff --git a/src/Microsoft.Kiota.Serialization.Json.csproj b/src/Microsoft.Kiota.Serialization.Json.csproj
index 2e42897..761e0b1 100644
--- a/src/Microsoft.Kiota.Serialization.Json.csproj
+++ b/src/Microsoft.Kiota.Serialization.Json.csproj
@@ -6,7 +6,7 @@
© Microsoft Corporation. All rights reserved.
Kiota JSON Serialization Library for dotnet using System.Text.Json
Microsoft
- netstandard2.0;netstandard2.1;net5.0;
+ netstandard2.0;netstandard2.1;net6.0;net7.0;net8.0;
latest
true
http://go.microsoft.com/fwlink/?LinkID=288890
@@ -34,7 +34,7 @@
README.md
$(NoWarn);NU5048;NETSDK1138
-
+
true