- - PR -
Session変数の構造体
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-01-13 16:01
色々調べたのですが、該当するようなページが見つけられませんでした。
もし初歩的な質問でしたらご容赦ください。 <環境> IIS6.0/IE6.0/C#(2003) <やりたい事> 画面間の引継ぎ項目が多く、 保持している画面区間(子画面がたくさんある為)が多いので、 構造体のSession変数をを使いたい。 <やろうとしている事> // 構造体定義 public struct tagKozo { public string strItem01; public string strItem02; public string strItem03; }; tagKozo kozo = new tagKozo(); // 構造体に値をセット kozo.strItem01 = "aaa"; kozo.strItem02 = "bbb"; kozo.strItem03 = "ccc"; // Sessionに直接、構造体をセット Session["ssnKozo"] = kozo; // Sessionにセットされた値を書き出す。 Response.Write(Session["ssnKozo"].strItem01) // ↑'object' に 'strItem01' の定義がありません。 Response.Write(Session["ssnKozo"].strItem02) Response.Write(Session["ssnKozo"].strItem03) <質問> 「'object' に 'strItem01' の定義がありません。」 とエラーメッセージがでます。 「Session["ssnKozo"].strItem01」の記述をコメントにすると クイックウォッチで、値が入っていることは確認できるのですが、 セットした値を取得できません。 もしかして、Sessionの方も構造体の定義か何かしなければならないのでしょうか? | ||||
|
投稿日時: 2005-01-13 16:13
キャストしてみましょう。
((tagKozo)Session["ssnKozo"]).strItem01 | ||||
|
投稿日時: 2005-01-13 16:18
たぶん、このコードを入力したときには、インテリセンスが効かなかったのではないかと思います。 そういうときは、そのオブジェクトの型情報がVisualStudioにとって不明確になっているということですから、noderaさんの書いたキャストが必要になると判ります。 _________________ たつごろー codeseek こみゅぷらす | ||||
|
投稿日時: 2005-01-13 16:33
noderaさん
たつごろーさん 早速、ありがとうございます。 おかげさまで解決致しました。 お二方の仰るとおり 「((tagKozo)Session["ssnKozo"]).strItem01」 で、値を取得できました。 |
1