Use available TypeConverters to serialize and deserialize types

This commit is contained in:
Pavlos Touboulidis
2014-07-12 04:46:45 +03:00
parent 451426bc3f
commit dcb7a44aa2
2 changed files with 31 additions and 0 deletions

View File

@@ -10,6 +10,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Globalization;
using System.Linq;
@@ -374,6 +375,22 @@ namespace OpenRA
return InvalidValueAction(value, fieldType, fieldName);
}
else
{
var conv = TypeDescriptor.GetConverter(fieldType);
if (conv.CanConvertFrom(typeof(string)))
{
try
{
return conv.ConvertFromInvariantString(value);
}
catch
{
return InvalidValueAction(value, fieldType, fieldName);
}
}
}
UnknownFieldAction("[Type] {0}".F(value), fieldType);
return null;
}