diff --git a/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.DefaultValue.cs b/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.DefaultValue.cs index ffa5f411..585e93ab 100644 --- a/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.DefaultValue.cs +++ b/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.DefaultValue.cs @@ -43,8 +43,8 @@ public abstract partial class BaseReflectionConverter : IReflectionConverter /// Thrown when type cannot be instantiated due to constructor limitations. public virtual object? CreateInstance(Reflector reflector, Type type) { - if (type == null) - throw new ArgumentNullException(nameof(type)); + if (reflector == null) throw new ArgumentNullException(nameof(reflector)); + if (type == null) throw new ArgumentNullException(nameof(type)); // Handle enums if (type.IsEnum) @@ -155,6 +155,9 @@ public abstract partial class BaseReflectionConverter : IReflectionConverter /// An appropriate default value for the specified type. public virtual object? GetDefaultValue(Reflector reflector, Type type) { + if (reflector == null) throw new ArgumentNullException(nameof(reflector)); + if (type == null) throw new ArgumentNullException(nameof(type)); + // Handle nullable types first if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) return null; diff --git a/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.Deserialize.cs b/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.Deserialize.cs index f2fd6a6d..1d3289eb 100644 --- a/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.Deserialize.cs +++ b/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.Deserialize.cs @@ -59,6 +59,9 @@ public abstract partial class BaseReflectionConverter : IReflectionConverter ILogger? logger = null, DeserializationContext? context = null) { + if (reflector == null) throw new ArgumentNullException(nameof(reflector)); + if (data == null) throw new ArgumentNullException(nameof(data)); + if (!TryDeserializeValue( reflector, data: data, @@ -216,6 +219,8 @@ protected virtual bool TryDeserializeValue( Logs? logs = null, ILogger? logger = null) { + if (reflector == null) throw new ArgumentNullException(nameof(reflector)); + if (data == null) { result = null; @@ -270,6 +275,10 @@ protected virtual bool TryDeserializeValueInternal( Logs? logs = null, ILogger? logger = null) { + if (reflector == null) throw new ArgumentNullException(nameof(reflector)); + if (data == null) throw new ArgumentNullException(nameof(data)); + if (type == null) throw new ArgumentNullException(nameof(type)); + var padding = StringUtils.GetPadding(depth); if (AllowCascadeSerialization) @@ -361,6 +370,10 @@ protected virtual bool TryDeserializeValueInternal( Logs? logs = null, ILogger? logger = null) { + if (reflector == null) throw new ArgumentNullException(nameof(reflector)); + if (data == null) throw new ArgumentNullException(nameof(data)); + if (type == null) throw new ArgumentNullException(nameof(type)); + return reflector.JsonSerializer.Deserialize( reflector, data.valueJsonElement, diff --git a/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.Modify.cs b/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.Modify.cs index 57aa41bd..06465402 100644 --- a/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.Modify.cs +++ b/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.Modify.cs @@ -57,6 +57,10 @@ public virtual bool TryModify( BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, ILogger? logger = null) { + if (reflector == null) throw new ArgumentNullException(nameof(reflector)); + if (data == null) throw new ArgumentNullException(nameof(data)); + if (type == null) throw new ArgumentNullException(nameof(type)); + var padding = StringUtils.GetPadding(depth); if (obj == null) @@ -256,6 +260,11 @@ protected virtual bool TryModifyField( BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, ILogger? logger = null) { + if (reflector == null) throw new ArgumentNullException(nameof(reflector)); + if (obj == null) throw new ArgumentNullException(nameof(obj)); + if (objType == null) throw new ArgumentNullException(nameof(objType)); + if (fieldValue == null) throw new ArgumentNullException(nameof(fieldValue)); + var padding = StringUtils.GetPadding(depth); if (string.IsNullOrEmpty(fieldValue.name)) @@ -371,6 +380,11 @@ protected virtual bool TryModifyProperty( BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, ILogger? logger = null) { + if (reflector == null) throw new ArgumentNullException(nameof(reflector)); + if (obj == null) throw new ArgumentNullException(nameof(obj)); + if (objType == null) throw new ArgumentNullException(nameof(objType)); + if (propertyValue == null) throw new ArgumentNullException(nameof(propertyValue)); + var padding = StringUtils.GetPadding(depth); if (string.IsNullOrEmpty(propertyValue.name)) diff --git a/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.Serialize.cs b/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.Serialize.cs index 4c220bbc..37520845 100644 --- a/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.Serialize.cs +++ b/ReflectorNet/src/Converter/Reflection/Base/BaseReflectionConverter.Serialize.cs @@ -32,6 +32,8 @@ public virtual SerializedMember Serialize( ILogger? logger = null, SerializationContext? context = null) { + if (reflector == null) throw new ArgumentNullException(nameof(reflector)); + var actualType = fallbackType ?? obj?.GetType() ?? typeof(T); return InternalSerialize( @@ -56,6 +58,9 @@ public virtual SerializedMember Serialize( ILogger? logger = null, SerializationContext? context = null) { + if (reflector == null) throw new ArgumentNullException(nameof(reflector)); + if (obj == null) throw new ArgumentNullException(nameof(obj)); + var serializedFields = default(SerializedMemberList); var objType = obj.GetType(); @@ -116,6 +121,9 @@ public virtual SerializedMember Serialize( ILogger? logger = null, SerializationContext? context = null) { + if (reflector == null) throw new ArgumentNullException(nameof(reflector)); + if (obj == null) throw new ArgumentNullException(nameof(obj)); + var serializedProperties = default(SerializedMemberList); var objType = obj.GetType(); diff --git a/ReflectorNet/src/Reflector/Reflector.Modify.cs b/ReflectorNet/src/Reflector/Reflector.Modify.cs index 96d2adf0..c4619eb0 100644 --- a/ReflectorNet/src/Reflector/Reflector.Modify.cs +++ b/ReflectorNet/src/Reflector/Reflector.Modify.cs @@ -43,6 +43,9 @@ public bool TryModify( BindingFlags flags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, ILogger? logger = null) { + if (data == null) + throw new ArgumentNullException(nameof(data)); + var padding = StringUtils.GetPadding(depth); if (obj == null && data.IsNull())