UnitTests для сериализации WCF и этот XmlWriter не поддерживают данные в кодировке base64. Какой писатель мне следует использовать?

Я пишу несколько модульных тестов, которые сериализуют и десериализуют все наши типы, которые могут пересечь границу WCF, чтобы доказать, что все свойства перейдут на другую сторону.

Я немного запутался со свойством byte[].

[DataContract(IsReference=true)]
public class BinaryDataObject
{
    [DataMember]
    public byte[] Data { get; set; }
}

Когда я запускаю этот объект через тестирование, я получаю System.NotSupportedException: This XmlWriter does not support base64 encoded data.

Вот мой метод сериализации:

public static XDocument Serialize(object source)
{
  XDocument target = new XDocument();
  using (System.Xml.XmlWriter writer = target.CreateWriter())
  {
    DataContractSerializer s = new DataContractSerializer(source.GetType());
    s.WriteObject(writer, source);
  }
  return target;
}

Мне приходит в голову, что мой метод сериализации должен быть ошибочным - WCF, вероятно, не использует экземпляры XDocument и может не использовать экземпляры System.Xml.XmlWriter.

Какой Writer использует WCF по умолчанию? Я хотел бы использовать экземпляры этого типа в своем тесте.


person Amy B    schedule 30.08.2011    source источник


Ответы (1)