C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: XmlSerializerにおけるencodi


(過去ログ 10 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■2119 / inTopicNo.1)  XmlSerializerにおけるencoding情報の登録
  
□投稿者/ M.K (10回)-(2007/03/19(Mon) 16:52:08)

分類:[C# (Windows)] 

何時もお世話になっております、M.Kと申します。

開発環境は WinXP SP2 + VS2005 + C# です。


とあるクラスの配列をXmlSerializerを使ってシリアライズしているのですが、
出力されたXMLファイルの先頭部分が以下の様になっています。

<?xml version="1.0"?>

これを

<?xml version="1.0" encoding="UTF-8"?>

などの様にencodingの情報をシリアライズと同時に埋め込みたいのですが、
この様な事はできるのか、またどの様に記述すれば良いのかを教えて頂け
ないでしょうか?

以上 宜しくお願いします。

引用返信 編集キー/
■2120 / inTopicNo.2)  Re[1]: XmlSerializerにおけるencodi
□投稿者/ HIRO (12回)-(2007/03/19(Mon) 17:17:42)
HIRO さんの Web サイト
2007/03/19(Mon) 17:18:45 編集(投稿者)
No2119 (M.K さん) に返信
> 何時もお世話になっております、M.Kと申します。
> 
> 開発環境は WinXP SP2 + VS2005 + C# です。
> 
> 
> とあるクラスの配列をXmlSerializerを使ってシリアライズしているのですが、
> 出力されたXMLファイルの先頭部分が以下の様になっています。
> 
> <?xml version="1.0"?>
> 
> これを
> 
> <?xml version="1.0" encoding="UTF-8"?>
> 
> などの様にencodingの情報をシリアライズと同時に埋め込みたいのですが、
> この様な事はできるのか、またどの様に記述すれば良いのかを教えて頂け
> ないでしょうか?
> 
> 以上 宜しくお願いします。

 シリアライズするときにXmlWriterを使用する。XmlWriterを作成するときに、
XmlWriterSettingsを作成しEncodingを指定すればよいのではないでしょうか?

引用返信 編集キー/
■2121 / inTopicNo.3)  Re[2]: XmlSerializerにおけるencodi
□投稿者/ M.K (12回)-(2007/03/19(Mon) 17:58:21)
No2120 (HIRO さん) に返信

>  シリアライズするときにXmlWriterを使用する。XmlWriterを作成するときに、
> XmlWriterSettingsを作成しEncodingを指定すればよいのではないでしょうか?

HIROさん、お返事ありがとうございます。

XmlWriterクラスを使用する事でEncodingを指定してXMLファイルを作成できる事は
ヘルプで読み解けたのですが、クラスの配列をシリアライズする事とXmlWriterを
結ぶものがわかりません。

もし良ければ具体的なコードも記述して頂けないでしょうか?

なお、私の方で記述しているシリアライズのコードは以下の通りです。

  XmlSerializer serializer = new XmlSerializer(typeof(Pattern[]));
  using (FileStream stream = new FileStream(FileName, FileMode.Create))
  {
      serializer.Serialize(stream, wrkPattern);
  }

引用返信 編集キー/
■2124 / inTopicNo.4)  Re[3]: XmlSerializerにおけるencodi
□投稿者/ Hongliang (124回)-(2007/03/19(Mon) 18:58:42)
Hongliang さんの Web サイト
XmlSerializer の Serialize メソッドのドキュメントを調べてみてください。
引用返信 編集キー/
■2125 / inTopicNo.5)  Re[4]: XmlSerializerにおけるencodi
□投稿者/ M.K (13回)-(2007/03/19(Mon) 19:54:57)
No2124 (Hongliang さん) に返信

> XmlSerializer の Serialize メソッドのドキュメントを調べてみてください。

Hongliangさん、お返事ありがとうございます。

以下の様に記述したところ、望むような書式で保存されました。

  XmlSerializer serializer = new XmlSerializer(typeof(Pattern[]));
  XmlWriterSettings settings = new XmlWriterSettings();
  settings.Indent = true;
  settings.IndentChars = ("    ");
  settings.Encoding = Encoding.UTF8;
  using (XmlWriter writer = XmlWriter.Create(FileName, settings))
  {
      serializer.Serialize(writer, wrkPattern);
  }

ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -