diff --git a/SabreTools.Serialization/Deserializers/BaseBinaryDeserializer.cs b/SabreTools.Serialization/Deserializers/BaseBinaryDeserializer.cs index c59474e6..24a8a16c 100644 --- a/SabreTools.Serialization/Deserializers/BaseBinaryDeserializer.cs +++ b/SabreTools.Serialization/Deserializers/BaseBinaryDeserializer.cs @@ -121,19 +121,23 @@ namespace SabreTools.Serialization.Deserializers return default; // If not all types can be loaded, use the ones that could be - List assemblyTypes = []; + Type?[] assemblyTypes = []; try { - assemblyTypes = [.. assembly.GetTypes()]; + assemblyTypes = assembly.GetTypes(); } catch (ReflectionTypeLoadException rtle) { - assemblyTypes = [.. rtle.Types]; + assemblyTypes = rtle.Types ?? []; } // Loop through all types - foreach (Type type in assemblyTypes) + foreach (Type? type in assemblyTypes) { + // If the type is invalid + if (type == null) + continue; + // If the type isn't a class if (!type.IsClass) continue; diff --git a/SabreTools.Serialization/Serializers/BaseBinarySerializer.cs b/SabreTools.Serialization/Serializers/BaseBinarySerializer.cs index d78b8dc2..15b8192d 100644 --- a/SabreTools.Serialization/Serializers/BaseBinarySerializer.cs +++ b/SabreTools.Serialization/Serializers/BaseBinarySerializer.cs @@ -120,19 +120,23 @@ namespace SabreTools.Serialization.Serializers return default; // If not all types can be loaded, use the ones that could be - List assemblyTypes = []; + Type?[] assemblyTypes = []; try { - assemblyTypes = [.. assembly.GetTypes()]; + assemblyTypes = assembly.GetTypes(); } catch (ReflectionTypeLoadException rtle) { - assemblyTypes = [.. rtle.Types]; + assemblyTypes = rtle.Types ?? []; } // Loop through all types - foreach (Type type in assemblyTypes) + foreach (Type? type in assemblyTypes) { + // If the type is invalid + if (type == null) + continue; + // If the type isn't a class if (!type.IsClass) continue;