将对象转换为XML字符串

将对象转换为XML字符串,xml,string,web-services,object,windows-store-apps,Xml,String,Web Services,Object,Windows Store Apps,我正在构建一个windows应用商店应用程序,我需要将一个对象转换为xml字符串,以便通过web服务将其发送,并在web服务中将其重新组装为PDF 该对象由2个字符串(名称和ID)和一个字节数组组成,其中包含一张照片(捕获到一个storagefile中,然后我将其转换为字节数组) 问题是我找不到任何方法将此对象转换为有效的xml字符串 这是我在谷歌搜索到的结果,但我不确定这是否是我需要的: Public Shared Function XmlFromObject(ByVal objTemp A

我正在构建一个windows应用商店应用程序,我需要将一个对象转换为xml字符串,以便通过web服务将其发送,并在web服务中将其重新组装为PDF

该对象由2个字符串(名称和ID)和一个字节数组组成,其中包含一张照片(捕获到一个storagefile中,然后我将其转换为字节数组)

问题是我找不到任何方法将此对象转换为有效的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

有人能帮忙吗?提前谢谢

我用了这个,也许它可以帮助你序列化你的对象:

我希望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();
这就是你要找的吗