private static DeserializeDelegate deserializeEnum(ScriptInfoSerializeHelper target, Type fieldType) { return((obj, value) => { try { target.SetValue(obj, Enum.Parse(fieldType, value, true)); } catch (FormatException) { target.SetValue(obj, target.defaultValue); } }); }
private static DeserializeDelegate deserializeCustom(ScriptInfoSerializeHelper target, DeserializerDelegate deserializer) { return((obj, value) => { try { target.SetValue(obj, deserializer(value)); } catch (FormatException) { target.SetValue(obj, target.defaultValue); } }); }
private static DeserializeDelegate deserializeDefault(ScriptInfoSerializeHelper target, Type fieldType) { return((obj, value) => { try { target.SetValue(obj, Convert.ChangeType(value, fieldType, FormatHelper.DefaultFormat)); } catch (FormatException) { target.SetValue(obj, target.defaultValue); } }); }
private static DeserializeDelegate deserializeNullableExact(ScriptInfoSerializeHelper target, Type fieldType, Type innerType) { return((obj, value) => { if (string.IsNullOrWhiteSpace(value)) { target.SetValue(obj, target.defaultValue); } else { var innerValue = Convert.ChangeType(value, innerType, FormatHelper.DefaultFormat); var nullable = Activator.CreateInstance(fieldType, new object[] { innerValue }); target.SetValue(obj, nullable); } }); }
private static DeserializeDelegate deserializeEnumExact(ScriptInfoSerializeHelper target, Type fieldType) { return((obj, value) => target.SetValue(obj, Enum.Parse(fieldType, value, true))); }
private static DeserializeDelegate deserializeCustomExact(ScriptInfoSerializeHelper target, DeserializerDelegate deserializer) { return((obj, value) => target.SetValue(obj, deserializer(value))); }
private static DeserializeDelegate deserializeDefaultExact(ScriptInfoSerializeHelper target, Type fieldType) { return((obj, value) => target.SetValue(obj, Convert.ChangeType(value, fieldType, FormatHelper.DefaultFormat))); }