using System.Net.Mime; using System.Text; using System.Xml.Serialization; namespace Elsa.Http.ContentWriters; /// /// Creates a object for application/json. /// public class XmlContentFactory : IHttpContentFactory { private readonly List _supportedContentTypes = new() { MediaTypeNames.Application.Xml, MediaTypeNames.Text.Xml }; /// public bool SupportsContentType(string contentType) => _supportedContentTypes.Contains(contentType); /// 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(); } }