как показать изображение внутри XML - PullRequest
1 голос
/ 22 сентября 2010

У меня есть класс, содержащий:

[Serializable]
public class ClsStatus
{
     public byte[] Image { get; set; }
     public string Status { get; set; }
     public List<string> Servers { get; set; }
}

Сейчас я делаю:

System.Drawing.Image image = null;
            byte[] imageBytes = null;

        // Create an image of the chart.
        using (MemoryStream s = new MemoryStream())
        {
            chart.ExportToImage(s, System.Drawing.Imaging.ImageFormat.Jpeg);
            image = System.Drawing.Image.FromStream(s);
            imageBytes = s.ToArray();
        }
        ClsStatus status = new ClsStatus();
        List<string> servers = new List<string>();
        servers.Add("Server1");
        servers.Add("Server2");
        servers.Add("Server2");

        status.Image = imageBytes;
        status.Status = "Up & Running";
        status.Servers = servers;

        //XML Serialization
        XmlDocument doc = new XmlDocument();
        XmlSerializer serializer = new XmlSerializer(status.GetType());
        MemoryStream stream = new MemoryStream();
        try
        {
            serializer.Serialize(stream, status);
            stream.Position = 0;
            doc.Load(stream);
            Response.ContentType = "text/xml";
            Response.Clear();
            Response.Write(doc.InnerXml);
        }
        catch
        {
            throw;
        }

Мой желаемый результат и то, что я получаю из приведенного выше кода, здесь: http://i.stack.imgur.com/YgKgH.jpg

Есть ли кто-нибудь, кто может помочь мне в решении моей проблемы?

С уважением, Mohin

1 Ответ

1 голос
/ 22 сентября 2010

XML - это в значительной степени текстовый формат, что означает, что вы не сможете «увидеть изображение» в своем XML-документе.

Самое близкое, что вы можете получить, - это кодировать двоичныйданные изображения в текстовую строку (обычно через кодировку Base64) и затем вставляют строку в документ XML.Это именно то, что вы получаете сейчас.

...