我該如何反序列化並投射下列xml文件? 我想有效的元素被鑄造爲bool屬性和時間對象的DateTime屬性簡單的XML序列化與自定義節點值轉換?
<Foo>
<Valid>True</Valid>
<Time>19/02/2012 00:25:50</Time>
</Foo>
被鑄造,而不是與反射請
我該如何反序列化並投射下列xml文件? 我想有效的元素被鑄造爲bool屬性和時間對象的DateTime屬性簡單的XML序列化與自定義節點值轉換?
<Foo>
<Valid>True</Valid>
<Time>19/02/2012 00:25:50</Time>
</Foo>
被鑄造,而不是與反射請
的Xml反序列化。
與屬性創建類:
class Foo
{
[XmlAttribute]
public bool valid;
[XmlAttribute]
public DateTime time;
}
記住 - 字段必須是公共的。
然後:
FileStream fs = new FileStream(filename, FileMode.Open);
XmlReader reader = XmlReader.Create(fs);
XmlSerializer xs = new XmlSerializer(typeof(Foo));
Foo foo = (Foo)xs.Deserialize(reader);
fs.Close();
.NET有一個XmlSerializer對象,讓你序列化和反序列化對象和從一個XML流,但它比你的XML文件以不同的方式創建它的標籤。 也許你可以創建一個自定義序列化器,它將根據你的規則進行操作。
Here你可以找到一個例子(它使用XSD文件來設置序列化的規則)
你能詳細說說你提到的xmlserializer嗎?如果需要,我可能會更改XML。謝謝 – user829174 2012-02-18 22:04:42
如果你的xml文件的模式不重要,你可以創建一個Maciej Dopieralski提到的類型,xmlserializer將爲你做其餘的:) – Beatles1692 2012-02-18 22:07:02
@JohnKoerner - 哈!打你23秒。這個問題帶來的唯一價值在於誰首先詢問這個顯而易見的問題。 – 2012-02-18 21:57:25
我知道我可以使用XmlSerialize,但它將它們轉換爲字符串,我希望它轉換爲真實的對象。有可能嗎? – user829174 2012-02-18 21:58:22