public virtual void ReadXml(XmlReader reader)
        {
            DisplayName = reader.GetAttribute("DisplayName");

            var typeStr = reader.GetAttribute("ValueType");
            var objType = Type.GetType(typeStr);
            var objData = reader.GetAttribute("Value");

            ParameterValue = XmlSerializationHelpers.XmlDeserializeFromString(objData, objType);
        }
        public virtual void WriteXml(XmlWriter writer)
        {
            writer.WriteAttributeString("DisplayName", DisplayName);

            var objType = ParameterValue.GetType();

            writer.WriteAttributeString("ValueType", objType.ToString());

            var objData = XmlSerializationHelpers.XmlSerializeToString(ParameterValue);

            writer.WriteAttributeString("Value", objData);
        }