파생 클래스에서 역 직렬화 할 수 없습니다.

마 킨슨

다음과 같은 수업이 있습니다.

public class Label
{
    public string Name { get; set; }

    public List<Field> Fields { get; set; }

    public Label(){}
}

List<Field>에서 derrived 클래스를 포함 할 수 있습니다 Field예를 들어, :

public class Image : Field
{
    public string Path { get; set; }
    public int MyProperty { get; set; }
}

public class Field
{
    int Xpos { get; set; }
    int Ypos { get; set; }
}

그러나 다음 XML을 사용하는 경우 :

<?xml version="1.0" encoding="utf-8"?>
  <Label>
    <Name>test</Name>

    <Fields>
        <Image></Image>
    </Fields>
</Label>

내 직렬화 해제 코드 :

string xmlString = File.ReadAllText(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "Label_1.xml");
var serializer = new XmlSerializer(typeof(Label), new XmlRootAttribute("Label"));
Label result;

using (TextReader reader = new StringReader(xmlString))
{
    result = (Label)serializer.Deserialize(reader);
}

그리고 나는 그것이의 역 직렬화 FieldA로부터 재산 Label만이 가지고 Field는 거기에하지 Image. 파생 된 클래스 이미지를 필드 목록에 추가하려면 어떻게해야합니까? 이제 필드 클래스 만 추가 할 수 있으며 이미지는 무시됩니다. 도와 주셔서 감사합니다!

편집하다

내 코드를 다음과 같이 변경하면 :

[XmlInclude(typeof(Image))]
public abstract class Field
{
    int Xpos { get; set; }
    int Ypos { get; set; }
    int Zindex { get; set; }
    Style Style { get; set; }
}

아무 반응이 없습니다! :(

user6996876

이것은 트릭을해야한다

    [XmlArrayItem(ElementName = "Field", Type = typeof(Field))]
    [XmlArrayItem(ElementName = "Image", Type = typeof(Image))]
    public List<Field> Fields { get; set; }

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

CouchDB에서 Json을 역 직렬화 할 수 없습니다.

분류에서Dev

JSON에서 사전을 역 직렬화 할 수 없습니다.

분류에서Dev

부스트 그래프 개체를 역 직렬화 할 수 없습니다.

분류에서Dev

파이썬 클래스 객체는 직렬화 할 수 없습니다.

분류에서Dev

listview에서 json 응답을 역 직렬화 할 수 없습니다.

분류에서Dev

FormatException : BsonType 'ObjectId'에서 'Guid'를 역 직렬화 할 수 없습니다.

분류에서Dev

컨트롤러에서 json 개체를 역 직렬화 할 수 없습니다.

분류에서Dev

bndtools osgi 프로젝트에서 xml을 역 직렬화 할 수 없습니다.

분류에서Dev

Java Spring에서 JSONObject (JSONArray 내부)를 역 직렬화 할 수 없습니다.

분류에서Dev

HashSet의 인스턴스를 역 직렬화 할 수 없습니다.

분류에서Dev

GSON은 커스텀 getter로 Kotlin 클래스를 역 직렬화 할 수 없습니다.

분류에서Dev

인터페이스로 형식을 역 직렬화 할 수 없습니다.

분류에서Dev

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

분류에서Dev

양쪽 끝에서 동일한 클래스를 사용하여 C #에서 JSON을 역 직렬화 할 수 없습니다.

분류에서Dev

com.owlike.genson.JsonBindingException : javax.ws.rs.core.Response 유형 클래스로 역 직렬화 할 수 없습니다.

분류에서Dev

servicestack MsgPack 클라이언트를 사용할 때 서비스 응답을 역 직렬화 할 수 없습니다.

분류에서Dev

Python에서 C # Newtonsoft와 같은 클래스로 Json을 역 직렬화 할 수 있습니까?

분류에서Dev

이 잭슨 XmlWrapper를 사용하여 클래스에서 두 번째 때 (변환) 미개봉 목록을 역 직렬화 할 수 없습니다

분류에서Dev

작업에 직렬화 할 수없는 결과가 스파크에서 발생했습니다.

분류에서Dev

xml 파일을 역 직렬화 할 수 없습니다. 항상 문제가 있습니다.

분류에서Dev

내 클래스 개체를 직렬화 할 수 없습니다.

분류에서Dev

JsonUtility로 데이터를 역 직렬화 할 수 없습니다.

분류에서Dev

Symfony serializer가 \ DateTime으로 역 직렬화 할 수 없습니다.

분류에서Dev

Json 배열은 역 직렬화 할 수 없습니다.

분류에서Dev

튜플을 역 직렬화 할 수 없습니다.

분류에서Dev

C # MVC는 튜플을 역 직렬화 할 수 없습니다.

분류에서Dev

JSON을 역 직렬화 할 수 없습니다.

분류에서Dev

Hibernate는 오류를 역 직렬화 할 수 없습니다.

분류에서Dev

xml을 List <T>로 역 직렬화 할 수 없습니다.

Related 관련 기사

  1. 1

    CouchDB에서 Json을 역 직렬화 할 수 없습니다.

  2. 2

    JSON에서 사전을 역 직렬화 할 수 없습니다.

  3. 3

    부스트 그래프 개체를 역 직렬화 할 수 없습니다.

  4. 4

    파이썬 클래스 객체는 직렬화 할 수 없습니다.

  5. 5

    listview에서 json 응답을 역 직렬화 할 수 없습니다.

  6. 6

    FormatException : BsonType 'ObjectId'에서 'Guid'를 역 직렬화 할 수 없습니다.

  7. 7

    컨트롤러에서 json 개체를 역 직렬화 할 수 없습니다.

  8. 8

    bndtools osgi 프로젝트에서 xml을 역 직렬화 할 수 없습니다.

  9. 9

    Java Spring에서 JSONObject (JSONArray 내부)를 역 직렬화 할 수 없습니다.

  10. 10

    HashSet의 인스턴스를 역 직렬화 할 수 없습니다.

  11. 11

    GSON은 커스텀 getter로 Kotlin 클래스를 역 직렬화 할 수 없습니다.

  12. 12

    인터페이스로 형식을 역 직렬화 할 수 없습니다.

  13. 13

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

  14. 14

    양쪽 끝에서 동일한 클래스를 사용하여 C #에서 JSON을 역 직렬화 할 수 없습니다.

  15. 15

    com.owlike.genson.JsonBindingException : javax.ws.rs.core.Response 유형 클래스로 역 직렬화 할 수 없습니다.

  16. 16

    servicestack MsgPack 클라이언트를 사용할 때 서비스 응답을 역 직렬화 할 수 없습니다.

  17. 17

    Python에서 C # Newtonsoft와 같은 클래스로 Json을 역 직렬화 할 수 있습니까?

  18. 18

    이 잭슨 XmlWrapper를 사용하여 클래스에서 두 번째 때 (변환) 미개봉 목록을 역 직렬화 할 수 없습니다

  19. 19

    작업에 직렬화 할 수없는 결과가 스파크에서 발생했습니다.

  20. 20

    xml 파일을 역 직렬화 할 수 없습니다. 항상 문제가 있습니다.

  21. 21

    내 클래스 개체를 직렬화 할 수 없습니다.

  22. 22

    JsonUtility로 데이터를 역 직렬화 할 수 없습니다.

  23. 23

    Symfony serializer가 \ DateTime으로 역 직렬화 할 수 없습니다.

  24. 24

    Json 배열은 역 직렬화 할 수 없습니다.

  25. 25

    튜플을 역 직렬화 할 수 없습니다.

  26. 26

    C # MVC는 튜플을 역 직렬화 할 수 없습니다.

  27. 27

    JSON을 역 직렬화 할 수 없습니다.

  28. 28

    Hibernate는 오류를 역 직렬화 할 수 없습니다.

  29. 29

    xml을 List <T>로 역 직렬화 할 수 없습니다.

뜨겁다태그

보관