配列を持つクラスの配列をシリアライズ
- 題名: 配列を持つクラスの配列をシリアライズ
- 著者: def
- 日時: 2009/03/29 22:10:23
- ID: 24294
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 配列を持つクラスの配列をシリアライズ
- 著者: Hongliang
- 日時: 2009/03/29 22:55:17
- ID: 24295
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 配列を持つクラスの配列をシリアライズ
- 著者: def
- 日時: 2009/03/29 23:04:04
- ID: 24296
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
2009/03/29(Sun) 22:31:43 編集(投稿者)
はじめまして。
ややこしいタイトルで申し訳ないですが、string配列をパブリックなプロパティとしてもつ
クラスを配列として利用しています。
これをxmlにシリアライズしたいのですが、実際シリアライズすると
他のプロパティは書き込まれるのですが、string配列のプロパティのみ
書き込まれません。
何か方法があればご教示ください。
よろしくお願いいたします。
以下コードです。
------------------------------------------------------
[Serializable]
public class CData {
private string _text;
private string[] _textArr;
public string Text {
set { _text = value; }
get { return _text; }
}
public string[] TextArr {
get { return _textArr; }
}
public void SetValues ( string text, string[] textArray ) {
_text = text;
_textArr = textArray ;
}
}
class Program {
static void Main ( string[] args ) {
List<CData> arr = new List<CData> ();
CData cdata = null;
for ( int i = 0; i < 3; i++ ) {
cdata = new CData ();
string[] s = new string[ 5 ];
for ( int j = 0; j < 5; j++ ) {
s[ j ] = "配列" + j.ToString ();
}
cdata.SetValues ( "property_" + i.ToString (), s );
arr.Add ( cdata );
}
System.Xml.Serialization.XmlSerializer seralizer = new System.Xml.Serialization.XmlSerializer ( typeof ( CData[] ) );
using ( FileStream fs = new FileStream ( Application.StartupPath + @"\data.xml", FileMode.Create ) ) {
seralizer.Serialize ( fs, (CData[])arr.ToArray () );
}
}
}
------------------------------------------------------