[英]how can i insert xml response to class object in c#
我正在一個項目中工作,該代碼將數據發布到付款集成url,並且我收到的響應為xml字符串格式,我想將該響應字符串插入類對象中,以便可以使用它來顯示用戶
我無法在代碼中輸入示例值,因為我無法共享原始信息。
我得到以下格式的響應字符串:
<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n
<REFUND>
<MERCHANTID>123</MERCHANTID>
<TRANSACTIONID>100045448545</TXNID>
<AMOUNT>100.00</AMOUNT>
<STATUSCODE>M5</STATUSCODE>
<STATUSMESSAGE>Invalid transaction date</STATUSMESSAGE>
<REFUNDID>NA</REFUNDID>
</REFUND>
我正在使用此代碼:
using (var client = new HttpClient())
{
var values = new List<KeyValuePair<string, string>>();
values.Add(new KeyValuePair<string, string>("merchantid", "123"));
values.Add(new KeyValuePair<string, string>("pwd", "hjcjsjjcj="));
values.Add(new KeyValuePair<string, string>("transactionid", "1000046558989"));
values.Add(new KeyValuePair<string, string>("refundamt", "100.00"));
values.Add(new KeyValuePair<string, string>("transactiondate", DateTime.Today.ToString("yyyy-MM-dd")));
values.Add(new KeyValuePair<string, string>("refundreferance", "25631"));
var content = new FormUrlEncodedContent(values);
var response = await client.PostAsync("payment url", content);
var responseString = await response.Content.ReadAsStringAsync();
var xmlSer = new XmlSerializer(typeof(REFUND), new XmlRootAttribute("REFUND"));
var stringReader = new StringReader(responseString);
var reader = xmlSer.Deserialize(stringReader);
return RedirectToAction("View", reader);
}
這是我要在其中插入響應的類:
[Serializable()]
public class REFUNDVW
{
[System.Xml.Serialization.XmlElement("MERCHANTID")]
public string MERCHANTID { get; set; }
[System.Xml.Serialization.XmlElement("TRANSACTIONID")]
public string TXNID { get; set; }
[System.Xml.Serialization.XmlElement("AMOUNT")]
public string AMOUNT { get; set; }
[System.Xml.Serialization.XmlElement("STATUSCODE")]
public string STATUSCODE { get; set; }
[System.Xml.Serialization.XmlElement("STATUSMESSEGE")]
public string STATUSMESSEGE { get; set; }
[System.Xml.Serialization.XmlElement("REFUNDID")]
public string REFUNDID{ get; set; }
}
[XmlTypeAttribute(AnonymousType = true)]
public class REFUND
{
[XmlArray("REFUND")]
public List<REFUNDVW> Refunds { get; set; }
public REFUND()
{
Refunds = new List<REFUNDVW>();
}
}
我想將XML響應字符串存儲在我創建的類的實例中,並將其傳遞給Razor視圖以將其顯示給用戶。
有很多錯誤
這是更新的Xml
<?xml version="1.0" encoding="UTF-8"?>
<REFUND>
<MERCHANTID>123</MERCHANTID>
<TRANSACTIONID>100045448545</TRANSACTIONID>
<AMOUNT>100.00</AMOUNT>
<STATUSCODE>M5</STATUSCODE>
<STATUSMESSAGE>Invalid transaction date</STATUSMESSAGE>
<REFUNDID>NA</REFUNDID>
</REFUND>
我修復了以下問題:
這是我使用的代碼,該代碼沒有給出異常,但由於類和XML不匹配而僅返回根類REFUND
string responseString = File.ReadAllText(FILENAME); XmlSerializer xmlSer = new XmlSerializer(typeof(REFUND)); StringReader stringReader = new StringReader(responseString); REFUND reader = (REFUND)xmlSer.Deserialize(stringReader);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.