2010-01-03 114 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为“栏”。

相关问题