.net xml序列化與xml反序列化

序列化

string xmlStr = "";
var dto = new ReqDto() { ErrorCode = 200, ReqName = "test" };
XmlSerializer serializer = new XmlSerializer(typeof(ReqDto));
using (StringWriter textWriter = new StringWriter())
{
    serializer.Serialize(textWriter, dto);
    xmlStr = textWriter.ToString();
}

序列化2

Person[] ps = new Person[3];
            ps[0] = p;
            ps[1] = p;
            ps[2] = p;
            //使用XML序列化對象
            string fileName = @"D:\users\lizw\桌面\Programmers.xml";//文件名稱與路徑
            Stream fStream = new FileStream(fileName, FileMode.Create);
            XmlSerializer xmlFormat = new XmlSerializer(typeof(Person[]));
            xmlFormat.Serialize(fStream, ps);//序列化對象
            fStream.Dispose();//關閉文件

反序列化

var len = Convert.ToInt32(HttpContext.Request.ContentLength);
byte[] byt = new byte[len];
var ri = HttpContext.Request.BodyReader.AsStream().Read(byt, 0, len);
string str = Encoding.UTF8.GetString(byt, 0, len);

//如果傳的是xml字符串,反序列化成對象。
ReqDto? dto = null;
XmlSerializer serializer = new XmlSerializer(typeof(ReqDto));
using (StringReader sr = new StringReader(str))
{
    object? obj = serializer.Deserialize(sr);
    if (obj != null)
    {
        dto = (ReqDto)obj;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章