ちょっとだけ、ツボったのでメモ。
public static class Program{
public static void Main(){
//XMLシリアライザ
XMLSerializer serializer=new XMLSerializer(typeof(ProjectData));
//ファイル用のストリーム
FileStream fs=new FileStream(@"test.xml",FileMode.Create,FileAccess.Write,FileShare.None);
//シリアライズするもの
ProjectData obj=new ProjectData(new Version(1,0,0,0));
serializer.Serialize(fs,obj);
}
}
public class ProjectData{
//シリアライズ用のコンストラクタ
public ProjectData(){}
//普通のコンストラクタ
public ProjectData(Version ver){
this.ProjectVersion=ver;
}
public Version ProjectVersion{get;set;}
}
しかし、こうすると、
<ProjectData>
<ProjectVersion/>
</PrjectData>
となってしまう。なんでだろうと悩んでいたら、
XMLシリアライザは、読み取り専用のプロパティはシリアライズされないという事、これをシリアライズするなら、また別の方法を考えなければならない。
ParseやToStringメソッドを使えば、文字列の形式にしておいて、その情報を使う時だけ直せばいいかもしれない。
[0回]