diff --git a/SHADE_Managed/src/Serialisation/SerialisationUtilities.cxx b/SHADE_Managed/src/Serialisation/SerialisationUtilities.cxx index 2bf05bc5..83da64b8 100644 --- a/SHADE_Managed/src/Serialisation/SerialisationUtilities.cxx +++ b/SHADE_Managed/src/Serialisation/SerialisationUtilities.cxx @@ -279,7 +279,15 @@ namespace SHADE for (int i = 0; i < LIST_SIZE; ++i) { // Create the object - System::Object^ obj = System::Activator::CreateInstance(elemType); + System::Object^ obj; + if (elemType == System::String::typeid) + { + obj = gcnew System::String(""); + } + else + { + obj = System::Activator::CreateInstance(elemType); + } // Set it's value if (varAssignYaml(obj, node[i])) diff --git a/SHADE_Managed/src/Serialisation/SerialisationUtilities.h++ b/SHADE_Managed/src/Serialisation/SerialisationUtilities.h++ index 04c87ef4..d2043f6b 100644 --- a/SHADE_Managed/src/Serialisation/SerialisationUtilities.h++ +++ b/SHADE_Managed/src/Serialisation/SerialisationUtilities.h++ @@ -167,6 +167,10 @@ namespace SHADE { valueObj = 0; } + else + { + return false; + } } else { @@ -181,6 +185,10 @@ namespace SHADE valueObj = FieldType(); } } + else + { + return false; + } } }