我正在构建一个Windows商店应用程序,我需要将一个对象转换为一个xml字符串,以便通过Web服务发送它,它将被重新组装为PDF。
该对象由2个字符串(名称和ID)和一个包含照片的字节数组组成(捕获到存储文件中,然后我将其转换为字节数组)。
问题是我找不到任何方法将此对象转换为有效的xml字符串。
这是我从谷歌搜索到目前为止所提出的,但我不确定这是否是我需要的:
Public Shared Function XmlFromObject(ByVal objTemp As Object, ByVal ID As String, ByVal name As String) As Task(of String)
Dim IDName As String = ID + "_" + name + ".xml"
Dim objStreamWriter As New StreamWriter(IDName)
Dim x As New XmlSerializer(objTemp.GetType)
using objStreamWriter
x.Serialize(objStreamWriter, objTemp)
end using
Return IDName
End Function
有人可以帮忙吗?提前谢谢!
答案 0 :(得分:1)
我用过这个可能会帮助你序列化你的对象:
我希望C#也适合你。
C#扩展方法:
public static string SerializeXml(this object instance)
{
using (var stream = new MemoryStream())
{
var serializer = new DataContractSerializer(instance.GetType());
serializer.WriteObject(stream, instance);
stream.Position = 0;
using (var reader = new StreamReader(stream))
{
var result = "<?xml version='1.0' encoding='UTF-8' ?>";
result += reader.ReadToEnd();
return result;
}
}
}
您的对象:
class Dto
{
public string Id{ get; set; }
public string Name{ get; set; }
public byte[] Data { get;set; }
}
<强>用法强>
var instance = new Dto();
instance.Id = "1";
instance.Name = "Any Name";
instance.Data = new byte[128];
var objAsString = instance.SerializeXml();
这是您要搜索的内容吗?