- - PR -
ArrayListのシリアライズ
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-04-24 00:12
http://www.atmarkit.co.jp/fdotnet/easyxml/easyxml11/easyxml11_04.html
を見ると一種類のクラスであれば、シリアライズする方法がわかりましたが、 複数種類のクラスを全部シリアライズする方法がわかりません。 あとColor構造体がクラスのフィールドになっている場合の シリアライズのやり方も教えてくれると幸いです。 | ||||||||
|
投稿日時: 2004-04-24 08:09
諸農です。
記事で示されているサンプルコードの場合なら、ArrayListの前に シリアライズしたいクラスをXmlArrayItem属性で指定すればいいか と思います。 例えば記事中のPerson,Adult,Childのすべてのクラスを対象にするなら、
の様な感じになると思います。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||
|
投稿日時: 2004-04-25 00:07
おおお。試してみました。できました。
ありがとーございます。 Color構造体とかのシリアライズはいまだわかってませんが、 とにかくありがとーございました。 | ||||||||
|
投稿日時: 2004-04-25 00:24
Color構造体は出来なかったと思います(XMLシリアライズ)。 シリアライズの目的はなんでしょう? ※バイナリやSOAPフォーマッタを使ったシリアライズなら出来ると思いますが。 | ||||||||
|
投稿日時: 2004-04-25 01:43
XmlSerializerを用いて、シリアル化できるのは、
読み書きのできるpublicプロパティに限られています。 従って、読み込み専用のColor構造体のメンバは基本的に XmlSerializerを用いてシリアル化できません。 しかし、方法はいくつかあります。 最も簡単な例はここにあります。 http://www.microsoft.com/japan/msdn/net/general/persistappsettnet.asp#persistappsettnet_topic4 また、推奨はしませんが、完全に自動化されているXmlSerializerのシリアル化も IxmlSerializableというインターフェイスを使用することによって、 独自のシリアル化コードを実行させることもできます。 | ||||||||
|
投稿日時: 2004-04-28 00:00
シリアライズの目的は設定の保存で、インスタンスのそのまま保存です。
かじったかぎりではバイナリシリアライズが目的に一番近いのですが、 メモ帳などで編集できるといいなーということでXMLシリアライズでやっていて わからないことがあったので質問しました。 ですが、まだシリアライズについて何が可能で不可能なのか あまりよくわかっていないのもありまして・・ リンク先見ました。だいたいですが、わかりました(つもり) どうもありがとうございました!! | ||||||||
|
投稿日時: 2004-05-04 11:51
またまた質問です
(Publicフィールドである)FontクラスをSoapFormatterでシリアライズできましたが デシリアライズができません。 'System.Reflection.TargetInvocationException' のハンドルされていない例外が mscorlib.dll で発生しました。 追加情報 : 呼び出しのターゲットが例外をスローしました。 を投げます。なぜでしょうか…。 | ||||||||
|
投稿日時: 2004-05-04 13:39
http://www.microsoft.com/japan/msdn/library/?url=/japan/msdn/library/ja/cpref/html/frlrfSystemDrawingFontClassTopic.asp?frame=true
Serializableなのになー。と謎は解けませんが、(これが勘違いか?!) プロパティでラップすることで回避できました。 ありがとーございました! |
1