リストにデシリアライズする方法< String> XmlSerializerを使用する

StackOverflow https://stackoverflow.com/questions/1208643

  •  05-07-2019
  •  | 
  •  

質問

以下のXMLをクラスにデシリアライズしようとしています。 Components List< string> にデシリアライズされていますが、その方法がわかりません。 。デシリアライザーは、他のすべてのプロパティに対しては正常に機能していますが、 Components に対しては機能していません。誰でもこれを行う方法を知っていますか?

<ArsAction>
  <CustomerName>Joe Smith</CustomerName>
  <LoginID>jdsmith</LoginID>
  <TicketGroup>DMS</TicketGroup>
  <Software>Visio 2007 Pro</Software>
  <Components>
    <Component>Component 1</Component>
    <Component>Component 2</Component>
  </Components>
  <Bldg>887</Bldg>
  <Room>1320p</Room>
</ArsAction>
役に立ちましたか?

解決

次のようなプロパティを追加して、コンポーネントのリストを保持します。

[XmlArray()]
public List<Component> Components { get; set; }

編集:申し訳ありませんが、誤解しています。あなたはそれを文字列のコレクションに読みたいです。以下でこれを試したところ、サンプルで機能しました。重要なのは、正しいXMLシリアル化属性を設定することです。

public class ArsAction
{
    [XmlArray]
    [XmlArrayItem(ElementName="Component")]
    public List<string> Components { get; set; }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top