• 締切済み

C#で、ユーザ定義型のデータをファイルに保存する方法

C#で、ユーザ定義型のデータをファイルに保存したい。 クラス型や構造体型で宣言したユーザ定義型のデータをファイルに保存する方法に ついて調べてみたのですが、以下の処理を実行するとクラス名やアセンブリ名等も ファイル内に書かれてしまいます。 [Serializable] public class Hoge // 書きたいクラス(UDT) {  ushort shtTest = 0xFFFF;  byte[] aryTest = { 0xEE,0xDD}; } class Program {  static void Main(string[] args)  {   Hoge test = new Hoge(); // 書きたいクラスを実体化   BinaryFormatter buf = new BinaryFormatter(); //BinaryFormatterを実体化   Stream FileSt = null;  // Streamを宣言               // ファイルオープン   FileSt = File.Open("testing.bin", FileMode.Create,FileAccess.Write);               // シリアライズ&書込み   buf.Serialize(FileSt, test);               // ファイルクローズ   FileSt.Close();               // キー待ち   Console.ReadLine();   return;  } } 上記のユーザ定義型データを 『 0xFF,0xFF,0xEE,0xDD 』 というようにファイルに書く方法はないでしょうか? どなたかご存じの方がいらっしゃいましたら何卒ご教授を宜しくお願いします。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

Serializeでシリアル化するからだと思います Objectとして合致しているかどうかを検証するためなどに必要な情報なので無いでしょうか そのような情報が必要ないなら BinaryWriterクラスなどで直接出力するメソッド準備すれば解決するのではないかと考えます Public void myWrite() {   FileStream oFile = File.Open( "test.bin", FileMode.Create,     FileAcess.Write);   BinaryWriter buf = new BinaryWrite( oFile );   buf.Write( shtTest );   buf.Write( arTest );   buf.Close();   oFile.Close(); } といった具合で ・・・

関連するQ&A