From 95fc35f134a03cfad3d3a946d040e8c2c7d2b653 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 6 Jun 2023 16:42:18 +0800 Subject: [PATCH] Enable nullable annotations for Volo.Abp.Json.Newtonsoft --- .../Volo.Abp.Json.Newtonsoft.csproj | 2 ++ .../Volo/Abp/Json/Newtonsoft/AbpDateTimeConverter.cs | 10 +++++----- .../Abp/Json/Newtonsoft/AbpNewtonsoftJsonSerializer.cs | 4 ++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/framework/src/Volo.Abp.Json.Newtonsoft/Volo.Abp.Json.Newtonsoft.csproj b/framework/src/Volo.Abp.Json.Newtonsoft/Volo.Abp.Json.Newtonsoft.csproj index 5349254ea3..094a6e3c0a 100644 --- a/framework/src/Volo.Abp.Json.Newtonsoft/Volo.Abp.Json.Newtonsoft.csproj +++ b/framework/src/Volo.Abp.Json.Newtonsoft/Volo.Abp.Json.Newtonsoft.csproj @@ -5,6 +5,8 @@ netstandard2.0;netstandard2.1;net7.0 + enable + Nullable Volo.Abp.Json.Newtonsoft Volo.Abp.Json.Newtonsoft $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Json.Newtonsoft/Volo/Abp/Json/Newtonsoft/AbpDateTimeConverter.cs b/framework/src/Volo.Abp.Json.Newtonsoft/Volo/Abp/Json/Newtonsoft/AbpDateTimeConverter.cs index 408f38e772..effda40057 100644 --- a/framework/src/Volo.Abp.Json.Newtonsoft/Volo/Abp/Json/Newtonsoft/AbpDateTimeConverter.cs +++ b/framework/src/Volo.Abp.Json.Newtonsoft/Volo/Abp/Json/Newtonsoft/AbpDateTimeConverter.cs @@ -31,7 +31,7 @@ public class AbpDateTimeConverter : DateTimeConverterBase, ITransientDependency return objectType == typeof(DateTime) || objectType == typeof(DateTime?); } - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) + public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer) { var nullable = Nullable.GetUnderlyingType(objectType) != null; if (reader.TokenType == JsonToken.Null) @@ -46,7 +46,7 @@ public class AbpDateTimeConverter : DateTimeConverterBase, ITransientDependency if (reader.TokenType == JsonToken.Date) { - return _clock.Normalize(reader.Value.To()); + return _clock.Normalize(reader.Value!.To()); } if (reader.TokenType != JsonToken.String) @@ -72,11 +72,11 @@ public class AbpDateTimeConverter : DateTimeConverterBase, ITransientDependency } } - var date = DateTime.Parse(dateText, _culture, _dateTimeStyles); + var date = DateTime.Parse(dateText!, _culture, _dateTimeStyles); return _clock.Normalize(date); } - public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) + public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer) { if (value != null) { @@ -97,7 +97,7 @@ public class AbpDateTimeConverter : DateTimeConverterBase, ITransientDependency } else { - throw new JsonSerializationException($"Unexpected value when converting date. Expected DateTime or DateTimeOffset, got {value.GetType()}."); + throw new JsonSerializationException($"Unexpected value when converting date. Expected DateTime or DateTimeOffset, got {value?.GetType()}."); } } diff --git a/framework/src/Volo.Abp.Json.Newtonsoft/Volo/Abp/Json/Newtonsoft/AbpNewtonsoftJsonSerializer.cs b/framework/src/Volo.Abp.Json.Newtonsoft/Volo/Abp/Json/Newtonsoft/AbpNewtonsoftJsonSerializer.cs index ab65909cf9..2a21f5fbd7 100644 --- a/framework/src/Volo.Abp.Json.Newtonsoft/Volo/Abp/Json/Newtonsoft/AbpNewtonsoftJsonSerializer.cs +++ b/framework/src/Volo.Abp.Json.Newtonsoft/Volo/Abp/Json/Newtonsoft/AbpNewtonsoftJsonSerializer.cs @@ -26,12 +26,12 @@ public class AbpNewtonsoftJsonSerializer : IJsonSerializer, ITransientDependency public T Deserialize(string jsonString, bool camelCase = true) { - return JsonConvert.DeserializeObject(jsonString, CreateJsonSerializerOptions(camelCase)); + return JsonConvert.DeserializeObject(jsonString, CreateJsonSerializerOptions(camelCase))!; } public object Deserialize(Type type, string jsonString, bool camelCase = true) { - return JsonConvert.DeserializeObject(jsonString, type, CreateJsonSerializerOptions(camelCase)); + return JsonConvert.DeserializeObject(jsonString, type, CreateJsonSerializerOptions(camelCase))!; } private readonly static ConcurrentDictionary JsonSerializerOptionsCache =