2

.aspxページのコードビハインドでオブジェクトを作成した場合、そのオブジェクトの存続期間はどれくらいになると予想できますか?それはポストバックを越えて生きますか?どういうわけか別のページに渡すことはできますか?たとえば、セッションオブジェクトである限り、ライブにすることはできますか?

コードビハインドから作成されたオブジェクトのライフサイクルと、このライフサイクルとの対話方法を説明するドキュメントを探してWebを検索しました。関連するリンクをいただければ幸いです。

ちなみに、私はコードビハインドでC#を使用していますが、VBを対象としたほとんどのアドバイスも適用できると思います。

4

3 に答える 3

5

.aspxページのコードビハインドでオブジェクトを作成した場合、そのオブジェクトの存続期間はどれくらいになると予想できますか?それはポストバックを越えて生きますか?どういうわけか別のページに渡すことはできますか?たとえば、セッションオブジェクトである限り、ライブにすることはできますか?

セッション内でオブジェクトインスタンスを保存できます。

Session["Foo"] = new MyFoo();

セッションにアクセスできる任意のページでインスタンスを取得できます。

MyFoo foo = (MyFoo) Session["Foo"];

これに代わる方法は、static変数を使用することです。この場合、変数はアプリドメインが破棄されるまで(つまり、IISが再起動されるまで)その値を保持しますが、すべてのユーザーに対して同じ値を持つという意味でグローバルでもあります(セッションとはまったく関係ありません)。

于 2011-04-28T02:14:59.453 に答える
5

オブジェクトは、ページの存続期間中、つまりページリクエストの期間中のみ存続します。存続期間を長くしたい場合は、セッションに保存して、リクエストごとに取得できます。

于 2011-04-28T02:15:05.057 に答える
3

コードビハインドは、リクエストの期間中存続します。それはポストバックを越えて生きることはありません。ポストバック全体で必要な場合は、Sessionに値を追加できます。同じことがVBにも当てはまります。

于 2011-04-28T02:16:14.247 に答える