2010-01-03 163 views

回答

4

您可以使用[XmlElement(...)]修飾您的字段以指定替代名稱。而且它們不必須按照相同的順序。但是,您指定的Xml不適合您指定的類的結構。

修改您的XML是這樣的:

<Hero> 
    <Name>android</Name> 
    <Faction>evil</Faction> 
    <HeroType>Agility</HeroType> 
</Hero> 
0

除非你指定(如阿維亞德P.說,由裝飾屬性與[XmlElement()]屬性),在XML名稱將精確地匹配屬性名稱,反之亦然。

排序應該是微不足道的。我說「應該」,因爲是否它實際上微不足道取決於你設計班級的方式。

儘管在處理XML反序列化時,最重要的是讓屬性設置器無副作用,這是很好的做法。在反序列化期間,屬性將按照它們在XML中出現的順序設置爲它們的值。

所以,如果你有這樣的類:

public class Test 
{ 
    private string _Foo; 
    public string Foo { set { _Foo = value; _Baz="Foo"; } get { return _Foo; }} 

    private string _Bar; 
    public string Bar { set { _Bar = value; _Baz="Bar"; } get { return _Bar; }} 

    private string _Baz; 
    public string Baz { set { _Baz = value; } get { return _Baz; }} 
} 

然後XML在FooBar出現之前將設置Baz爲「富」,而XML在其中BarFoo出現之前將設置Baz爲「欄」。

相關問題