- - PR -
構造体について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-07-04 11:03
Sessionの管理をStateServerで行うことにしたのですが
構造体をSessionの領域に保存しようとすると 「例外の詳細: System.Runtime.Serialization.SerializationException: …… の型 hogehoge は シリアル化可能として設定されていません。」 と出ました。 StateServerでSession管理する際には、データをシリアル化するため 構造体にserializable属性が必要であるということまでは分かったのですが、 その属性は構造体に追加できるものなのか、どのようにすれば追加できるのかが どうしても分かりません。 ご存知の方がいましたらご教授お願い致します。 | ||||
|
投稿日時: 2003-07-04 14:46
こんにちは。
構造体の先頭に <Serialize()> ←VB.NETの場合 と記述してみてください。C#の場合は、適宜変更してください。これで通ればOK。 もっと細かい制御がしたいときは、ここの過去ログをあさってください。ポストしています。 ↓そうでした、忘れてました [ メッセージ編集済み 編集者: Jitta 編集日時 2003-07-05 19:14 ] ↓↓ああ!さらにそうでした。[Serialize]ではなく、[Serializable]でした。失礼しました。 [ メッセージ編集済み 編集者: Jitta 編集日時 2003-07-07 12:54 ] | ||||
|
投稿日時: 2003-07-05 01:21
やや注意が必要な事ですが、構造体をSerializableにする場合、
構造体のメンバの全てがシリアライズ可能でなければなりません。 基本型のメンバ等だけを持つような構造体なら大丈夫ですが、 自作のクラスへの参照をメンバとして持っているような場合は注意してください。 | ||||
|
投稿日時: 2003-07-07 12:48
Jittaさん、なちゃさんありがとうございます!
私はC#で作ってるので、Jittaさんのご意見をいただいて試してみたのですが [SerializableAttribute] public struct hoge { … } でなんとか解決できました。 私の悪い癖で違う方向にぶっちぎってしまってたため時間がかかりましたけど…。 とても助かりました! |
1