move over xml

This commit is contained in:
honzapatCZ 2024-11-11 19:11:50 +01:00
parent b86c277885
commit 336191ed3b
2 changed files with 34 additions and 17 deletions

View File

@ -38,25 +38,12 @@ public static class Responses
public static FileStreamHttpResult RespondXml<T>(this ControllerBase controller, T obj, string fileName = "Data.xml")
{
var stream = new MemoryStream();
//use utf8 encoding
var serializer = new XmlSerializer(typeof(T));
var settings = new XmlWriterSettings
{
Indent = true,
Encoding = Encoding.UTF8,
};
var stream = Utils.Xml.Serialize(obj);
//Console.Writeline(stream.Length);
stream.Seek(0, SeekOrigin.Begin);
using (var writer = XmlWriter.Create(stream, settings))
{
serializer.Serialize(writer, obj);
//Console.Writeline(stream.Length);
stream.Seek(0, SeekOrigin.Begin);
controller.Response.Headers.Add("Content-Disposition", "inline; filename=" + fileName);
return TypedResults.File(stream, "text/xml", fileName);
controller.Response.Headers.Add("Content-Disposition", "inline; filename=" + fileName);
return TypedResults.File(stream, "text/xml", fileName);
}
}
}

30
Utils/Xml.cs Normal file
View File

@ -0,0 +1,30 @@
using System.Text;
using System.Xml;
using System.Xml.Serialization;
namespace NejCommon.Utils;
public static class Xml{
public static Stream Serialize<T>(T obj){
var stream = new MemoryStream();
//use utf8 encoding
var serializer = new XmlSerializer(typeof(T));
var settings = new XmlWriterSettings
{
Indent = true,
Encoding = Encoding.UTF8,
};
//Console.Writeline(stream.Length);
using (var writer = XmlWriter.Create(stream, settings))
{
serializer.Serialize(writer, obj);
//Console.Writeline(stream.Length);
stream.Seek(0, SeekOrigin.Begin);
return stream;
}
}
}