[XmlRoot(ElementName = "Response")]
public class BackBankInfo
{
public ResponseData Data { get; set; }
public override string ToString()
{
return CommonUtil.GetXml(this, Encoding.UTF8);
}
}
[XmlType(TypeName = "Data")]
public class ResponseData
{
[XmlElement("errcode")]
public string ErrCode { get; set; }
[XmlElement("errmsg")]
public string ErrMssage { get; set; }
}
public static string GetXml(object model, Encoding en)
{
try
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = " ";
settings.Encoding = en;
settings.NewLineChars = "\r\n";// 換行
settings.OmitXmlDeclaration = false;// 不生成聲明頭 <?xml version="1.0" encoding="utf-16"?>
XmlSerializerNamespaces _namespaces = new XmlSerializerNamespaces(
new XmlQualifiedName[] {
new XmlQualifiedName(string.Empty, "")
});
//使用StringWriter無法修改編碼方式,默認utf-16
//StringWriter xmlTest = new StringWriter();
//XmlWriter sw = XmlWriter.Create(xmlTest,settings);//
//var 下詳細 = xmlTest.ToString();
MemoryStream stream = new MemoryStream();
XmlWriter sw = XmlWriter.Create(stream, settings);//
XmlSerializer serializer = new XmlSerializer(model.GetType());
serializer.Serialize(sw, model, _namespaces);//
sw.Close();
return en.GetString(stream.ToArray());
}
catch (Exception ex)
{
LoggerHelp.Info($"xml生成異常{ex}");
}
return "";
}
解析XML
RequestInfo mobileInfo = new RequestInfo();
using (StringReader sr = new StringReader(xmlRequestInfo))
{
XmlSerializer serializer = new XmlSerializer(typeof(RequestInfo));
mobileInfo = serializer.Deserialize(sr) as RequestInfo;
}
[XmlRoot(ElementName = "Request")]
public class RequestInfo
{
[XmlElement(ElementName = "Data")]
public RequestData RequestData { get; set; }
}
[XmlRoot(ElementName = "Envelope")]
public class RequestData
{
[XmlElement(ElementName = "merchid")]
public string Merchid { get; set; }
[XmlElement(ElementName = "trnserial")]
public string Trnserial { get; set; }
}
using System.Xml.Serialization;