Files
2026-03-04 10:03:45 +08:00

32 lines
808 B
C#

using System;
namespace Gaia.FullSerializer.Internal
{
public class fsNullableConverter : fsConverter
{
public override bool CanProcess(Type type)
{
if (type.Resolve().IsGenericType)
{
return type.GetGenericTypeDefinition() == typeof(Nullable<>);
}
return false;
}
public override fsResult TrySerialize(object instance, out fsData serialized, Type storageType)
{
return Serializer.TrySerialize(Nullable.GetUnderlyingType(storageType), instance, out serialized);
}
public override fsResult TryDeserialize(fsData data, ref object instance, Type storageType)
{
return Serializer.TryDeserialize(data, Nullable.GetUnderlyingType(storageType), ref instance);
}
public override object CreateInstance(fsData data, Type storageType)
{
return storageType;
}
}
}