직렬화 된 XML 파일이 비어 있습니다.

킬리 벡터

객체를 직렬화 한 후 빈 xmlfile을 얻습니다. 저는 Monodevelop과 Unity 4를 사용하고 있습니다. 주로이 커뮤니티에서 오랜 시간 동안 검색했지만 더 어려운 답변으로 어려운 문제 만 발견했습니다. :) 제 생각에는 너무 간단하다고 생각합니다. 제발 도와주세요. (저는 c #을 처음 사용합니다) 직렬화 된 개체는 다음과 같습니다.

[System.Serializable]
public class information  {
    private string data1;
    private string data2;
    private string data3;

public void Data1(string text)
{
        data1 = text;
}
public string GetData1 ()
{
    return data1;   
}
    public void Data2(string text)
    {
        data2 = text;
    }
public string GetData2 ()
{
    return data2;   
}
    public void Data3(string text)
    {
        data3 = text;
    }
}

직렬화 클래스는 다음과 같습니다. 여기에 문제가있을 수 있습니다.

public class SaveXml {
        public void SaveData(object obj, string filename)
{
        XmlSerializer sr = new XmlSerializer(obj.GetType());    
        TextWriter writer = new StreamWriter(filename);
        sr.Serialize(writer, obj);
        writer.Close();
    }

    public string Load()
{
    if(File.Exists("accdata.xml"))
    {
        XmlSerializer xs = new XmlSerializer(typeof(information));
        FileStream read = new FileStream("accdata.xml",FileMode.Open, FileAccess.Read, FileShare.Read);
        information info = (information)xs.Deserialize(read);
        return info.GetData1();
    }
    else
    {
        return "file does not exist";
    }
}

직렬화 및 직렬화 된 객체는 다음 두 개의 버튼이있는 메뉴에 의해 호출됩니다.

if(GUI.Button(new Rect(10,50,300,100),"Save"))
{
    SaveXml saver = new SaveXml();
    information infol = new information();
    infol.Data1("textone");
    infol.Data2("texttwo");
    infol.Data3( "textthree");
    saver.SaveData(infol, "accdata.xml");
}   
if(GUI.Button(new Rect(500,50,300,100),"Load"))
{
    SaveXml saver1 = new SaveXml();
    text = saver1.Load();
}

따라서 클래스 메뉴에 선언 된 변수 텍스트는 저장 버튼과 LoadButton을 클릭 한 후 "textone"이어야합니다. 저장 버튼은 비어있는 파일을 만듭니다.

The Deserialization seems to work but of course there is no String in the data1 variable in Information so the variable in the menu called text is empty too. I get no errors and i can work with the object after serialization. So why doesnt my serialization work? Please help me. I excuse for my bad english and mistakes, i am new to stackoverflow.

I4V

Xml serializer serializes public fields/properties not methods. Change your methods to properties. For ex,

    public string Data2
    {
        set { data2 = value; }
        get { return data2; }
    }

So your information class can be

public class Information
{
    public string Data1 { get; set; }
    public string Data2 { get; set; }
    public string Data3 { get; set; }
}

BTW: you don't need this Serializable attribute. It is only used by BinaryFormatter

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

직렬화 된 XML 파일이 비어 있습니다.

분류에서Dev

직렬화 된 XML 파일이 비어 있습니다.

분류에서Dev

C # 직렬화 : xml이 비어 있음

분류에서Dev

어떻게 직렬화 된 일반 목록으로 json 파일을 역 직렬화 할 수 있습니까?

분류에서Dev

XML이 아직 비어 있습니까?

분류에서Dev

직렬화 된 파일이있는 경우에만 직렬화 해제

분류에서Dev

Unity의 XML 직렬화-배열에 다른 배열 항목이 포함되어 있습니까?

분류에서Dev

내 XML 파일을 class.cs로 역 직렬화했습니다. C # ViewModel에서 어떻게 사용할 수 있습니까?

분류에서Dev

중첩 된 사전이있는 JSON 파일 역 직렬화

분류에서Dev

역 직렬화 된 클래스가 비어 있음-JSON C #

분류에서Dev

트리 노드에서 파생 된 XML 직렬화 / 역 직렬화

분류에서Dev

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

분류에서Dev

XML (비) 직렬화기를 작동시킬 수 없습니다.

분류에서Dev

base64에서 동일한 직렬화 된 matplotlib 플롯을 비교하면 false가 생성됩니다. 직렬화 된 데이터 만 사용하여 올바르게 비교하려면 어떻게합니까?

분류에서Dev

Ecore 모델에 XML 파일로드 (비 직렬화)

분류에서Dev

UDP를 통한 직렬화 준비가 된 이진 데이터 배열을 어떻게 만들고 편집 할 수 있습니까?

분류에서Dev

일괄 처리를 위해 EventData의 직렬화 된 크기를 어떻게 결정할 수 있습니까?

분류에서Dev

C #에서 파생 된 개체를이 XML로 직렬화하는 방법은 무엇입니까?

분류에서Dev

이미 직렬화 된 클래스를 직렬화 할 수 없습니까?

분류에서Dev

이미 직렬화 된 클래스를 직렬화 할 수 없습니까?

분류에서Dev

Siphon은 비활성화 된 필드를 직렬화합니다.

분류에서Dev

WinRT (스토어 애플리케이션)의 XML 직렬화 / 역 직렬화

분류에서Dev

XML 파일이 비어 있으면 int를 반환 할 수 없습니다.

분류에서Dev

SqlGeography 열이있는 Datatable은 Lat, Long 및 기타 요소가 손실되어 XML로 올바르게 직렬화 될 수 없습니다.

분류에서Dev

Laravel 5.2-공개 된 모든 CSS 및 JS 파일이 비어 있습니다.

분류에서Dev

직렬화 가능한 Java 클래스가 일반 파일보다 큰 직렬화 된 파일을 생성하는 이유는 무엇입니까?

분류에서Dev

Go에서 비 정렬 화로 네임 스페이스가 지정된 XML 속성에 액세스하는 데 문제가 있습니다.

분류에서Dev

이 Json.Net C #에서 생성 $ 심판 및 $ ID가 포함 된 경우 어떻게 JSON은 자바 직렬화 할 수 있습니다

분류에서Dev

나머지 서비스에서 반환 된 xml을 역 직렬화하는 문제를 어떻게 해결합니까?

Related 관련 기사

  1. 1

    직렬화 된 XML 파일이 비어 있습니다.

  2. 2

    직렬화 된 XML 파일이 비어 있습니다.

  3. 3

    C # 직렬화 : xml이 비어 있음

  4. 4

    어떻게 직렬화 된 일반 목록으로 json 파일을 역 직렬화 할 수 있습니까?

  5. 5

    XML이 아직 비어 있습니까?

  6. 6

    직렬화 된 파일이있는 경우에만 직렬화 해제

  7. 7

    Unity의 XML 직렬화-배열에 다른 배열 항목이 포함되어 있습니까?

  8. 8

    내 XML 파일을 class.cs로 역 직렬화했습니다. C # ViewModel에서 어떻게 사용할 수 있습니까?

  9. 9

    중첩 된 사전이있는 JSON 파일 역 직렬화

  10. 10

    역 직렬화 된 클래스가 비어 있음-JSON C #

  11. 11

    트리 노드에서 파생 된 XML 직렬화 / 역 직렬화

  12. 12

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

  13. 13

    XML (비) 직렬화기를 작동시킬 수 없습니다.

  14. 14

    base64에서 동일한 직렬화 된 matplotlib 플롯을 비교하면 false가 생성됩니다. 직렬화 된 데이터 만 사용하여 올바르게 비교하려면 어떻게합니까?

  15. 15

    Ecore 모델에 XML 파일로드 (비 직렬화)

  16. 16

    UDP를 통한 직렬화 준비가 된 이진 데이터 배열을 어떻게 만들고 편집 할 수 있습니까?

  17. 17

    일괄 처리를 위해 EventData의 직렬화 된 크기를 어떻게 결정할 수 있습니까?

  18. 18

    C #에서 파생 된 개체를이 XML로 직렬화하는 방법은 무엇입니까?

  19. 19

    이미 직렬화 된 클래스를 직렬화 할 수 없습니까?

  20. 20

    이미 직렬화 된 클래스를 직렬화 할 수 없습니까?

  21. 21

    Siphon은 비활성화 된 필드를 직렬화합니다.

  22. 22

    WinRT (스토어 애플리케이션)의 XML 직렬화 / 역 직렬화

  23. 23

    XML 파일이 비어 있으면 int를 반환 할 수 없습니다.

  24. 24

    SqlGeography 열이있는 Datatable은 Lat, Long 및 기타 요소가 손실되어 XML로 올바르게 직렬화 될 수 없습니다.

  25. 25

    Laravel 5.2-공개 된 모든 CSS 및 JS 파일이 비어 있습니다.

  26. 26

    직렬화 가능한 Java 클래스가 일반 파일보다 큰 직렬화 된 파일을 생성하는 이유는 무엇입니까?

  27. 27

    Go에서 비 정렬 화로 네임 스페이스가 지정된 XML 속성에 액세스하는 데 문제가 있습니다.

  28. 28

    이 Json.Net C #에서 생성 $ 심판 및 $ ID가 포함 된 경우 어떻게 JSON은 자바 직렬화 할 수 있습니다

  29. 29

    나머지 서비스에서 반환 된 xml을 역 직렬화하는 문제를 어떻게 해결합니까?

뜨겁다태그

보관