Я пишу некоторые модульные тесты, которые сериализуют и десериализуют все наши типы, которые могут пересекать границу 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
экземпляров.
Что делает WriterWCF использовать по умолчанию?Я хотел бы использовать экземпляры этого типа в моем тесте.