public object ReadBuiltInType(RosType rosType, Type destinationType) { var type = BuiltInRosTypes.GetSerializationType(rosType); var value = ReadBuiltInType(type); if (type == destinationType) { return(value); } if (destinationType.IsEnum) { if (type == typeof(string)) { value = Enum.Parse(destinationType, (string)value); } else { value = Enum.ToObject(destinationType, value); } return(value); } value = Convert.ChangeType(value, destinationType); return(value); }
public void WriteBuiltInType(RosType rosType, object value) { var type = BuiltInRosTypes.GetSerializationType(rosType); if (value != null) { var valueType = value.GetType(); if (valueType != type) { value = Convert.ChangeType(value, type); } } WriteBuiltInType(type, value); }