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);
        }