- PR -

Sessionのクリア方法について

1
投稿者投稿内容
Liquid_Force
大ベテラン
会議室デビュー日: 2003/08/28
投稿数: 102
投稿日時: 2006-02-24 10:09
こんにちは。どなたかSessionについてご教示下さい。

Windows2003Server
IIS6.0
vb.net
Oracle9i

での開発でさまざまなSession変数を使用しているのですが、これをクリアする際
@Session.Clear()
ASession.RemoveAll()
の違いがいまいちよくわからないので教えてください。

Clearは全てのSession変数のキーと値を全てクリアして・・・
Remove("キー名")は指定したSession変数の値をクリア・・・
RemoveAllは状態を削除とありますが、これは"InProc"や"SQLState"などの
ことを指しているのでしょうか?

よろしくお願い致します。
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2006-02-24 11:16
> 1.Session.Clear()
> 2.Session.RemoveAll()
> の違いがいまいちよくわからないので教えてください。

.NET Framework クラス ライブラリ
HttpSessionState.Clear メソッド
http://msdn2.microsoft.com/ja-jp/library/system.web.sessionstate.httpsessionstate.clear.aspx
セッション状態のコレクションからすべてのキーと値を削除します。

.NET Framework クラス ライブラリ
HttpSessionState.RemoveAll メソッド
http://msdn2.microsoft.com/ja-jp/library/system.web.sessionstate.httpsessionstate.removeall.aspx
セッション状態のコレクションからすべてのキーと値を削除します。
解説
RemoveAll は、Clear と同じ機能を実行します。

とありますので、同じのようです。
Liquid_Forceさんが見たところとは違うことが書かれているようですので、そこも調べてみたいところです。Liquid_Forceさんが考えている相違があるかもしれません。

_________________
たつごろー
codeseek
こみゅぷらす
Liquid_Force
大ベテラン
会議室デビュー日: 2003/08/28
投稿数: 102
投稿日時: 2006-02-24 12:16
たつごろーさん回答ありがとうございます!

なんと!?確かに同じことが記述されていますね。
Clear()とRemoveAll()は同じ機能・・・
もともとはRemove("キー")というメソッドがあって、その後に「じゃぁ項目全部も削除できるようにしよう!」
ってな発想でRemoveAllを用意したらClearと機能がかぶってしまった・・・
見たいな感じなんでしょうか(笑

違うメソッド名だったので何かしら違いがあると思い込んでました。

私が見た以下の説明は、VS.NET2003でメソッドを選択するときに脇に表示される
(サポート機能?)コメントです。

Clear:セッション状態から全ての値を削除します。
RemoveAll:全てのセッション状態値を削除します。

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

スキルアップ/キャリアアップ(JOB@IT)