요소 이름이 다른 동일한 개체를 사용하여 XML 역 직렬화

user5126784

직렬화 / 역 직렬화 할 EventType 및 Events 클래스가 있습니다. Xml for Events에는 "type"이라는 XmlElement가 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<events type="array">
   <event>
      <where />
      <project-users-can-edit type="boolean">false</project-users-can-edit>
      <description />
      <attending-user-ids type="integer">164316</attending-user-ids>
      <notify-user-names>Levent A.</notify-user-names>
      <attending-user-names>Levent A.</attending-user-names>
      <status>active</status>
      <owner>
         <first-name>Levent</first-name>
         <id type="integer">164316</id>
         <last-name>Arık</last-name>
      </owner>
      <reminders type="array" />
      <notify-user-ids type="integer">164316</notify-user-ids>
      <start>2015-06-22T00:00</start>
      <repeat />
      <all-day type="boolean">true</all-day>
      <id type="integer">608945</id>
      <end>2015-06-22T23:59</end>
      <show-as-busy type="boolean">false</show-as-busy>
      <last-changed-on type="date">2015-07-08T09:20:37Z</last-changed-on>
      <privacy>
         <type>company</type>
      </privacy>
      <attendees-can-edit type="boolean">false</attendees-can-edit>
      *<type>
         <name>Yıllık İzin</name>
         <id type="integer">104109</id>
         <color>C65518</color>
      </type>*
      <title>Yıllıkİzin</title>
   </event>
</events>

하지만 EventTypes 목록과 다른 xmlelement 이름 "eventtypes"가있는 Xml도 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<eventtypes type="array">
   <eventtype>
      <name>Diğer</name>
      <id type="integer">104285</id>
      <color>E7C342</color>
   </eventtype>
   <eventtype>
      <name>Hastalık</name>
      <id type="integer">104284</id>
      <color>399A5A</color>
   </eventtype>
   <eventtype>
      <name>Mazeret İzni</name>
      <id type="integer">104110</id>
      <color>633C9C</color>
   </eventtype>
   <eventtype>
      <name>ResmiTatil</name>
      <id type="integer">104286</id>
      <color type="integer">737173</color>
   </eventtype>
   <eventtype>
      <name>Yıllık İzin</name>
      <id type="integer">104109</id>
      <color>C65518</color>
   </eventtype>
</eventtypes>

나는 이것을 위해 아래 수업을 사용하고 있습니다. 그러나 eventtypes Xml을 deserialize하고 싶을 때 XmlRoot 속성의 제목 때문에 예외가 있습니다.

[Serializable]
[XmlRoot("type")]
public class EventType
{
    public EventType()
    {

    }
    [XmlElement("color")]
    public string Color { get; set; }
    [XmlElement("id")]
    public string Id { get; set; }
    [XmlElement("name")]
    public string Name { get; set; }

}

동일한 속성을 가진 2 개의 다른 클래스를 작성할 수 있다는 것을 알고 있습니다. 하지만 다른 방법이 있는지 궁금합니다.

dbc

XmlRootAttribute그 타입 (또는 타입의 열거)는 문서의 루트 요소 인 경우 속성은 타입에 사용되는 요소 이름을 제어한다. 그렇지 않으면 XmlElementAttribute.ElementName유형을 참조 하는 속성 이름 또는 속성 값이 XML 요소 이름을 제어합니다. 따라서 EventType다음과 같이 다른 외부 클래스에 포함될 때 클래스에 대해 다른 요소 이름을 갖는 충돌이 없습니다 .

[XmlRoot("eventtypes")]
public class EventTypeList
{
    [XmlAttribute("type")]
    public string Type { get; set; }

    [XmlElement("eventtype")]
    public List<EventType> EventTypes { get; set; }
}

[XmlRoot("events")]
public class EventList
{
    [XmlAttribute("type")]
    public string Type { get; set; }

    [XmlElement("event")]
    public List<Event> Events { get; set; }
}

[XmlRoot("event")]
public class Event // Prototype implementation only, many properties omitted.
{
    [XmlElement("title")]
    public string Title { get; set; }

    // Remainder omitted for brevity.

    [XmlElement("type")]
    public EventType Type { get; set; }
}

예제 바이올린 .

덧붙여서 Serializable이진 직렬화에만 유용하기 때문에 클래스 에서 속성을 제거 할 수 있습니다 .

[XmlRoot("type")]
public class EventType
{
    public EventType() { }
    [XmlElement("color")]
    public string Color { get; set; }
    [XmlElement("id")]
    public string Id { get; set; }
    [XmlElement("name")]
    public string Name { get; set; }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

이름은 같지만 내용이 다른 여러 요소를 사용한 XML 역 직렬화

분류에서Dev

XML은 동일한 객체 다른 요소 이름으로 역 직렬화합니다.

분류에서Dev

자식 개체 및 형제 개체에서 개체 이름이 동일한 XML Serializer를 사용하여 개체를 직렬화 할 수 없습니다.

분류에서Dev

(역) 하나의 클래스를 사용하여 다른 루트 요소 이름 직렬화

분류에서Dev

이름이 같은 다른 xml 요소를 다른 C # 클래스로 역 직렬화

분류에서Dev

XML을 동일한 요소 이름을 가진 파생 클래스로 역 직렬화 하시겠습니까?

분류에서Dev

SimpleXML을 사용하여 다른 xml 태그를 단일 문자열로 포함하는 XML 요소 역 직렬화

분류에서Dev

SimpleXML을 사용하여 다른 xml 태그를 단일 문자열로 포함하는 XML 요소 역 직렬화

분류에서Dev

반복되는 (그러나 다른) 요소를 사용하여 XML 역 직렬화

분류에서Dev

C #에서 형식 이름이 다른 XML 요소 역 직렬화

분류에서Dev

여러 네임 스페이스를 사용하여 XML에서 선택 요소 역 직렬화

분류에서Dev

이름은 같지만 요소의 데이터 유형이 다른 두 개의 요소가있는 XML을 어떻게 역 직렬화합니까?

분류에서Dev

동일한 이름의 새 개체로 개체를 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

XML 역 직렬화 다른 개체 C #

분류에서Dev

Json.net은 이름이 다른 동일한 객체를 역 직렬화합니다.

분류에서Dev

DataContractSerializer를 사용하여 개체에서 XML 역 직렬화

분류에서Dev

변수 이름을 사용하여 개체로 역 직렬화

분류에서Dev

여러 네임 스페이스를 사용한 XML 역 직렬화

분류에서Dev

BinaryFormatter를 사용하여 역 직렬화하는 동안 요소 건너 뛰기

분류에서Dev

개체 목록에 하위 요소를 역 직렬화 할 수 없습니다.

분류에서Dev

자식 요소 이름이 동적 일 때 문자열을 xml로 역 직렬화

분류에서Dev

C #을 사용하여 XmlArrayAttribute 행이있는 XML 문서를 개체로 올바르게 역 직렬화합니다.

분류에서Dev

동일한 속성으로 xml 요소 역 직렬화

분류에서Dev

Jsonsoft를 사용하여 역 직렬화하는 동안 단일 줄 문자열이 실패합니다.

분류에서Dev

다른 개체를 포함하는 json 개체 역 직렬화

분류에서Dev

여러 개체를 단일 XML 파일로 직렬화 / 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

직렬화를 위해 C # 특성을 사용하여 xml 요소에 친숙한 이름 특성을 추가 하시겠습니까?

분류에서Dev

복잡한 소품 유형은 같지만 이름이 다른 객체를 직렬화하는 방법

분류에서Dev

C #을 사용하여 XML 파일에서 데이터를 직렬화 및 역 직렬화하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    이름은 같지만 내용이 다른 여러 요소를 사용한 XML 역 직렬화

  2. 2

    XML은 동일한 객체 다른 요소 이름으로 역 직렬화합니다.

  3. 3

    자식 개체 및 형제 개체에서 개체 이름이 동일한 XML Serializer를 사용하여 개체를 직렬화 할 수 없습니다.

  4. 4

    (역) 하나의 클래스를 사용하여 다른 루트 요소 이름 직렬화

  5. 5

    이름이 같은 다른 xml 요소를 다른 C # 클래스로 역 직렬화

  6. 6

    XML을 동일한 요소 이름을 가진 파생 클래스로 역 직렬화 하시겠습니까?

  7. 7

    SimpleXML을 사용하여 다른 xml 태그를 단일 문자열로 포함하는 XML 요소 역 직렬화

  8. 8

    SimpleXML을 사용하여 다른 xml 태그를 단일 문자열로 포함하는 XML 요소 역 직렬화

  9. 9

    반복되는 (그러나 다른) 요소를 사용하여 XML 역 직렬화

  10. 10

    C #에서 형식 이름이 다른 XML 요소 역 직렬화

  11. 11

    여러 네임 스페이스를 사용하여 XML에서 선택 요소 역 직렬화

  12. 12

    이름은 같지만 요소의 데이터 유형이 다른 두 개의 요소가있는 XML을 어떻게 역 직렬화합니까?

  13. 13

    동일한 이름의 새 개체로 개체를 역 직렬화하는 방법은 무엇입니까?

  14. 14

    XML 역 직렬화 다른 개체 C #

  15. 15

    Json.net은 이름이 다른 동일한 객체를 역 직렬화합니다.

  16. 16

    DataContractSerializer를 사용하여 개체에서 XML 역 직렬화

  17. 17

    변수 이름을 사용하여 개체로 역 직렬화

  18. 18

    여러 네임 스페이스를 사용한 XML 역 직렬화

  19. 19

    BinaryFormatter를 사용하여 역 직렬화하는 동안 요소 건너 뛰기

  20. 20

    개체 목록에 하위 요소를 역 직렬화 할 수 없습니다.

  21. 21

    자식 요소 이름이 동적 일 때 문자열을 xml로 역 직렬화

  22. 22

    C #을 사용하여 XmlArrayAttribute 행이있는 XML 문서를 개체로 올바르게 역 직렬화합니다.

  23. 23

    동일한 속성으로 xml 요소 역 직렬화

  24. 24

    Jsonsoft를 사용하여 역 직렬화하는 동안 단일 줄 문자열이 실패합니다.

  25. 25

    다른 개체를 포함하는 json 개체 역 직렬화

  26. 26

    여러 개체를 단일 XML 파일로 직렬화 / 역 직렬화하는 방법은 무엇입니까?

  27. 27

    직렬화를 위해 C # 특성을 사용하여 xml 요소에 친숙한 이름 특성을 추가 하시겠습니까?

  28. 28

    복잡한 소품 유형은 같지만 이름이 다른 객체를 직렬화하는 방법

  29. 29

    C #을 사용하여 XML 파일에서 데이터를 직렬화 및 역 직렬화하는 방법은 무엇입니까?

뜨겁다태그

보관