Browse Source

Handle the serialized object as null.

Resolve #6324
pull/6325/head
maliming 6 years ago
parent
commit
f39b81a6cc
  1. 15
      framework/src/Volo.Abp.Json/Volo/Abp/Json/AbpHybridJsonSerializer.cs

15
framework/src/Volo.Abp.Json/Volo/Abp/Json/AbpHybridJsonSerializer.cs

@ -1,5 +1,6 @@
using System;
using System.Linq;
using JetBrains.Annotations;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using Volo.Abp.DependencyInjection;
@ -18,17 +19,19 @@ namespace Volo.Abp.Json
ServiceScopeFactory = serviceScopeFactory;
}
public string Serialize(object obj, bool camelCase = true, bool indented = false)
public string Serialize([CanBeNull]object obj, bool camelCase = true, bool indented = false)
{
using (var scope = ServiceScopeFactory.CreateScope())
{
var serializerProvider = GetSerializerProvider(scope.ServiceProvider, obj.GetType());
var serializerProvider = GetSerializerProvider(scope.ServiceProvider, obj?.GetType());
return serializerProvider.Serialize(obj, camelCase, indented);
}
}
public T Deserialize<T>(string jsonString, bool camelCase = true)
public T Deserialize<T>([NotNull]string jsonString, bool camelCase = true)
{
Check.NotNull(jsonString, nameof(jsonString));
using (var scope = ServiceScopeFactory.CreateScope())
{
var serializerProvider = GetSerializerProvider(scope.ServiceProvider, typeof(T));
@ -36,8 +39,10 @@ namespace Volo.Abp.Json
}
}
public object Deserialize(Type type, string jsonString, bool camelCase = true)
public object Deserialize(Type type, [NotNull]string jsonString, bool camelCase = true)
{
Check.NotNull(jsonString, nameof(jsonString));
using (var scope = ServiceScopeFactory.CreateScope())
{
var serializerProvider = GetSerializerProvider(scope.ServiceProvider, type);
@ -45,7 +50,7 @@ namespace Volo.Abp.Json
}
}
protected virtual IJsonSerializerProvider GetSerializerProvider(IServiceProvider serviceProvider, Type type)
protected virtual IJsonSerializerProvider GetSerializerProvider(IServiceProvider serviceProvider, [CanBeNull]Type type)
{
foreach (var providerType in Options.Providers.Reverse())
{

Loading…
Cancel
Save