[英]Deserialize XML Messages to Objects
我正在為使用 HTTP 傳輸 XML 消息的協議編寫客戶端。 它是同步的,因為我形成了一個遵循 DTD 的 XML 文檔,並使用 WebClient class 通過 POST 將其發送到該協議的網關,並且我從遠程服務器獲得了一個 XML 響應消息,指示 ID/狀態事務響應消息
既然我有 DTD,是否可以用它創建類? 對於我的 XML 消息正在執行的每種“操作”類型,有一些可能的響應,並且具有可以由返回的服務器 XML 水合的類將是有利的。
一旦我有了這些類,將來自服務器的 XML 消息反序列化為對象的基本步驟是什么?
將 DTD 轉換為 XSD(不確定是否仍需要此步驟):
從 XSD 生成 C# class (命令行工具,我就是這樣做的,不確定是否有更好的方法):
http://quickstart.developerfusion.co.uk/quickstart/howto/doc/xmlserialization/XSDToCls.aspx
從 XML 序列化回 class:
一旦你有了 xml 字符串,你可以做這樣的事情,其中 T 是你的通用 object。
public static T GetObjectFromXmlString<T>(string xml)
{
T result = default(T);
if (string.IsNullOrEmpty(xml))
return result;
using (StringReader sr = new StringReader(xml))
{
using (XmlTextReader xr = new XmlTextReader(sr))
{
XmlSerializer serializer = new XmlSerializer(typeof(T));
result = (T)serializer.Deserialize(xr);
}
}
return result;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.