¿Cómo usar un IXmlSerializable personalizado como XmlAttribute?

Yo implementoIXmlSerializable para el tipo debajo del cual se codifica un valor de color RGB como una sola cadena:

public class SerializableColor : IXmlSerializable
{
    public int R { get; set; }
    public int G { get; set; }
    public int B { get; set; }

    public XmlSchema GetSchema()
    {
        return null;
    }

    public void ReadXml(XmlReader reader)
    {
        var data = reader.ReadString();
        reader.ReadEndElement();
        var split = data.Split(' ');
        R = int.Parse(split[0]);
        G = int.Parse(split[1]);
        B = int.Parse(split[2]);
    }

    public void WriteXml(XmlWriter writer)
    {
        writer.WriteString(R + " " + G + " " + B);
    }
}

Como se trata de una única cadena, quería almacenarla como un atributo para ahorrar espacio. Pero tan pronto como agregue el[XmlAttribute] a mi propiedad, obtengo la siguiente excepción:

{"No se puede serializar el miembro 'Color' del tipo SerializableColor. XmlAttribute / XmlText no se puede usar para codificar tipos que implementan IXmlSerializable."}

¿Hay alguna manera de hacer que funcione como un atributo también?

Respuestas a la pregunta(2)

Su respuesta a la pregunta