簡體   English   中英

XmlSerializer反序列化空元素的屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM