2014-09-30 2 views
0

SharpSerializer를 사용하여 객체를 XML 파일로 직렬화하려고합니다.
결과 xml 파일에는 내가 제공하는 정보가 들어 있지 않습니다.C# serialization : xml이 비어 있습니다.

public class SaveGameInfo 
{ 
    public string test; 
} 

public class main 
{ 
    public void onClickedSave() 
    { 
     SaveGameInfo obj = new SaveGameInfo(); 
     obj.test = "TestInformation"; 
     SharpSerializer sharpSerializer = new SharpSerializer(); 
     sharpSerializer.Serialize(obj, "test.xml"); 
    } 
} 

결과 XML은이 정보 전달 :
내 코드는 뭔가처럼 나는 분명 뭔가 빠진 것 같은

<Complex name="Root" type="SaveGameInfo, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" /> 

느낌을,하지만 난 그게 뭔지 모르겠어요.

답변

2

당신은 필드 대신 속성을 사용한다 :

public class SaveGameInfo 
{ 
    public string Test { get; set; } 
} 

public class main 
{ 
    public void onClickedSave() 
    { 
     SaveGameInfo obj = new SaveGameInfo(); 
     obj.Test = "TestInformation"; 
     SharpSerializer sharpSerializer = new SharpSerializer(); 
     sharpSerializer.Serialize(obj, "test.xml"); 
    } 
} 

Note 2: SharpSerializer는 개체 속성을 직렬화한다. 필드는 이며 직렬화되지 않습니다. 필드를 serialize하려면 필드에 을 입력해야합니다.

0

SharpSerializer를 사용하지 않고 시도해보십시오.

public class main 
{ 
    public void onClickedSave() 
    { 
     SaveGameInfo obj = new SaveGameInfo(); 
     obj.test = "TestInformation"; 
     obj.SerializeToXml("Test.xml"); 
    } 
} 

public class SaveGameInfo 
{ 
    public string test; 

    public void SerializeToXml(string fullFileName) 
    { 
     var serializer = new XmlSerializer(typeof(SaveGameInfo)); 
     var textWriter = new StreamWriter(fullFileName); 
     serializer.Serialize(textWriter, this); 
     textWriter.Close(); 
    } 
}