using System.Net.Mime; using System.Text; using System.Xml.Serialization; namespace Elsa.Http.ContentWriters; /// /// Creates a object for XML types. /// public class XmlContentFactory : IHttpContentFactory { /// public IEnumerable SupportedContentTypes => new[] { MediaTypeNames.Application.Xml, MediaTypeNames.Text.Xml, MediaTypeNames.Application.Soap, }; /// public HttpContent CreateHttpContent(object content, string contentType) { var text = content as string ?? Serialize(content); return new StringContent(text, Encoding.UTF8, contentType); } private string Serialize(object value) { using var writer = new StringWriter(); new XmlSerializer(value.GetType()).Serialize(writer, value); return writer.ToString(); } }