>백엔드 개발 >C++ >XmlSerializer는 XML을 목록으로 역직렬화할 수 있습니까?

XmlSerializer는 XML을 목록으로 역직렬화할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-13 09:11:44760검색

Can XmlSerializer Deserialize XML into a List?

XmlSerializer 및 목록 역직렬화

XmlSerializer XML 데이터를 List<T>로 직접 역직렬화할 수 있나요? 샘플 XML 구조와 해당 C# 클래스를 사용하여 이를 살펴보겠습니다.

예제 XML:

<code class="language-xml"><?xml version="1.0"?>
<user_list>
  <user>
    <id>1</id>
    <name>Joe</name>
  </user>
  <user>
    <id>2</id>
    <name>John</name>
  </user>
</user_list></code>

C# 사용자 클래스:

<code class="language-csharp">public class User
{
   [XmlElement("id")]
   public Int32 Id { get; set; }

   [XmlElement("name")]
   public String Name { get; set; }
}</code>

List<User>에 대한 직접 역직렬화는 XmlSerializer에서 직접 지원되지 않습니다. 그러나 간단한 해결 방법으로 이 문제를 해결할 수 있습니다.

해결책: 목록 포장

해결 방법은 List<User>:

을 포함하는 래퍼 클래스를 만드는 것입니다.
<code class="language-csharp">using System;
using System.Collections.Generic;
using System.Xml.Serialization;

[XmlRoot("user_list")]
public class UserListWrapper
{
    public UserListWrapper() { Users = new List<User>(); }
    [XmlElement("user")]
    public List<User> Users { get; set; }
}</code>

UserListWrapper 클래스를 사용하면 역직렬화가 간단해집니다. XmlSerializer는 래퍼 내의 Users 목록을 채웁니다. 역직렬화 후에는 래퍼의 List<User> 속성에서 Users에 액세스할 수 있습니다. 선호도에 따라 래퍼 클래스 내의 목록 대신 배열(User[])을 사용할 수도 있습니다.

위 내용은 XmlSerializer는 XML을 목록으로 역직렬화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.