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

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

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

Re[2]: オブジェクトをXMLに変換したものを、メモリに持つ方法


(過去ログ 40 を表示中)

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

■21236 / inTopicNo.1)  オブジェクトをXMLに変換したものを、メモリに持つ方法
  
□投稿者/ clyxml (1回)-(2008/06/27(Fri) 17:21:32)

分類:[C#] 

お世話になってます。

オブジェクトをXMLに変換し、そのデータをHTTP通信でPOSTする、と言うことをやろうとしています。
まずは、オブジェクトをXMLに変換したものを、文字列(string)で取得しようとしています。(後にPOSTする為)

オブジェクトをXML化したデータを、例えばstring型で取得する、というような方法が分かりません。
XML化したものを保存する方法なら、いくらでもあるのですが...
(オブジェクトからXML化する方法は、こちらを参考にしました。 http://dobon.net/vb/dotnet/file/xmlserializer.html)

仕方ないので現在は
オブジェクト→XMLファイル化→そのファイルをXmlDocumentのLoadにて読み込み、InnerXmlにて取得、と言うようなことをしています。

            System.Xml.Serialization.XmlSerializer serializer =
                new System.Xml.Serialization.XmlSerializer(typeof(XML_SMP));
            //ファイルを開く
            using (System.IO.FileStream fs = 
                new System.IO.FileStream(fileName, System.IO.FileMode.Create))
            {
                //シリアル化し、XMLファイルに保存する
                serializer.Serialize(fs, xml_struct);
            }
            XmlDocument Xmldoc = new XmlDocument();
            Xmldoc.Load(fileName);
            textBox1.Text = Xmldoc.InnerXml;

一応これで目的は達せられるのですが、ファイルを作り、読むという処理が全く無駄です。
シリアル化されたところで、取得できるのではないかと思うのですが、未だ正解はつかめていません。

何か方法をご存知であれば、是非知恵を貸してください。
よろしくお願いします。

引用返信 編集キー/
■21238 / inTopicNo.2)  Re[1]: オブジェクトをXMLに変換したものを、メモリに持つ方法
□投稿者/ シャノン (491回)-(2008/06/27(Fri) 17:29:27)
No21236 (clyxml さん) に返信
> お世話になってます。
>
> オブジェクトをXMLに変換し、そのデータをHTTP通信でPOSTする、と言うことをやろうとしています。
> まずは、オブジェクトをXMLに変換したものを、文字列(string)で取得しようとしています。(後にPOSTする為)
>
> オブジェクトをXML化したデータを、例えばstring型で取得する、というような方法が分かりません。
> XML化したものを保存する方法なら、いくらでもあるのですが...
> (オブジェクトからXML化する方法は、こちらを参考にしました。 http://dobon.net/vb/dotnet/file/xmlserializer.html

XmlSerializer は Stream や TextWriter に書き込むことが出来ますから、MemoryStream や StringWriter に書き込むことで、ファイルを介さずに文字列表現を得られます。
引用返信 編集キー/
■21239 / inTopicNo.3)  Re[2]: オブジェクトをXMLに変換したものを、メモリに持つ方法
□投稿者/ clyxml (2回)-(2008/06/27(Fri) 18:02:21)
No21238 (シャノン さん) に返信
> ■No21236 (clyxml さん) に返信
>>お世話になってます。
>>
>>オブジェクトをXMLに変換し、そのデータをHTTP通信でPOSTする、と言うことをやろうとしています。
>>まずは、オブジェクトをXMLに変換したものを、文字列(string)で取得しようとしています。(後にPOSTする為)
>>
>>オブジェクトをXML化したデータを、例えばstring型で取得する、というような方法が分かりません。
>>XML化したものを保存する方法なら、いくらでもあるのですが...
>>(オブジェクトからXML化する方法は、こちらを参考にしました。 http://dobon.net/vb/dotnet/file/xmlserializer.html
> 
> XmlSerializer は Stream や TextWriter に書き込むことが出来ますから、MemoryStream や StringWriter に書き込むことで、ファイルを介さずに文字列表現を得られます。

しっかりと私の意志を汲み取っていただき、ありがとうございます。
教えていただいた方法で、以下のようにして解決する事ができました。

            System.Xml.Serialization.XmlSerializer serializer =
                new System.Xml.Serialization.XmlSerializer(typeof(XML_TCQ));
            using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
            {
                //シリアル化し、メモリに保存する
                serializer.Serialize(ms, cls);
                byte[] aa = ms.ToArray();
            }
            using (System.IO.StringWriter sw = new System.IO.StringWriter())
            {
                serializer.Serialize(sw, cls);
                string afd = sw.ToString();
            }

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

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


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

このトピックに書きこむ

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

管理者用

- Child Tree -