[英]XmlSerializer deserialize attribute of empty elements
我的XmlSerializer有问题。 我尝试反序列化此文件:
<MyClass Id="12">
<ProblemHere Value="8"/>
<OtherElement>0</OtherElement>
<fdp>NTM</fdp>
</MyClass>
在这一节课中:
[XmlType(TypeName = "MyClass")]
public class MyClass
{
[XmlAttribute(AttributeName = "Id")]
public int Id { get; set; }
//Here I try somes head but it's a failure
public int ProblemHere { get; set; }
public int OtherElement{ get; set; }
public string fdp{get; set}
}
如您所知,我想要将ProblemHere
设置为其值(此处为8)。 有什么简单的方法可以做到这一点,还是我必须创建一个具有int Value
属性的ProblemHere
类(对我来说似乎ProblemHere
过头了)?
据我所知,您必须创建一个单独的类。 该属性被命名为“ ProblemHere”,但是您希望该属性被命名为“ value”-我不知道.Net中的任何属性都可以做到这一点。
我通常更喜欢让Visual Studio生成基本的XSD(稍后可以进行调整),然后使用xsd.exe为其生成一组(反序列化)类。
是的,您必须创建一个类来表示该数据规范,即
public class Foo {
[XmlAttribute]
public int Value {get;set;}
}
public Foo ProblemHere { get; set; }
这是XmlSerializer
使用所需结构的唯一方法。
你可以做这样的事情
private int _problem = 0;
public int ProblemHere { get {return _problem; } set { _problem = value; } }
不漂亮但是可以用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.