Как использовать пользовательский IXmlSerializable в качестве XmlAttribute?

Я реализуюIXmlSerializable для типа ниже, который кодирует значение цвета RGB как одну строку:

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

Поскольку это одна строка, я хотел сохранить ее в качестве атрибута для экономии места. Но как только я добавлю[XmlAttribute] в мою собственность я получаю следующее исключение:

{"Cannot serialize member 'Color' of type SerializableColor. XmlAttribute/XmlText cannot be used to encode types implementing IXmlSerializable."}

Есть ли способ заставить его работать как атрибут?

Ответы на вопрос(2)

Ваш ответ на вопрос