public async Task ShouldDeserializeFromXmlAsync() { var serializerSettings = new XmlContentSerializerSettings { XmlNamespaces = new XmlSerializerNamespaces() }; var sut = new XmlContentSerializer(serializerSettings); var dto = await sut.DeserializeAsync <Dto>(new StringContent("<Dto><Identifier>123</Identifier></Dto>")); Assert.Equal("123", dto.Identifier); }
public async Task ShouldSerializeToXmlUsingNamespaceOverrides() { const string prefix = "google"; var dto = BuildDto(); var serializerSettings = new XmlContentSerializerSettings { XmlNamespaces = new XmlSerializerNamespaces() }; serializerSettings.XmlNamespaces.Add(prefix, "https://google.com"); var sut = new XmlContentSerializer(serializerSettings); var content = sut.ToHttpContent(dto); var document = new XmlDocument(); document.LoadXml(await content.ReadAsStringAsync()); Assert.Equal(prefix, document["Dto"]?["Name", "https://google.com"]?.Prefix); }
public async Task ShouldSerializeToXmlUsingAttributeOverrides() { const string overridenRootElementName = "dto-ex"; var dto = BuildDto(); var serializerSettings = new XmlContentSerializerSettings(); var attributes = new XmlAttributes { XmlRoot = new XmlRootAttribute(overridenRootElementName) }; serializerSettings.XmlAttributeOverrides.Add(dto.GetType(), attributes); var sut = new XmlContentSerializer(serializerSettings); var content = sut.ToHttpContent(dto); var document = new XmlDocument(); document.LoadXml(await content.ReadAsStringAsync()); Assert.Equal(overridenRootElementName, document.DocumentElement?.Name); }
public async Task XmlEncodingShouldMatchWriterSettingAsync() { var encoding = Encoding.UTF32; var serializerSettings = new XmlContentSerializerSettings { XmlReaderWriterSettings = new XmlReaderWriterSettings() { WriterSettings = new XmlWriterSettings() { Encoding = encoding } } }; var sut = new XmlContentSerializer(serializerSettings); var dto = BuildDto(); var content = sut.ToHttpContent(dto); var xml = XDocument.Parse(await content.ReadAsStringAsync()); var documentEncoding = xml.Declaration.Encoding; Assert.Equal(encoding.WebName, documentEncoding); }
public XmlContentSerializer(XmlContentSerializerSettings settings) { this.settings = settings ?? throw new ArgumentNullException(nameof(settings)); }