英語で読む

次の方法で共有


ISessionStateItemCollection インターフェイス

定義

ASP.NET セッション状態がセッションを管理するために使用するコレクションのコントラクトを定義します。

C#
public interface ISessionStateItemCollection : System.Collections.ICollection
派生
実装

次のコード例では、 ISessionStateItemCollection を実装し、 クラスを SortedList 使用してセッション状態の変数名と値を格納します。

C#
using System;
using System.Web;
using System.Web.SessionState;
using System.Collections;
using System.Collections.Specialized;

namespace Samples.AspNet.Session
{

  public class MySessionStateItemCollection : ISessionStateItemCollection
  {
    private SortedList pItems = new SortedList();
    private bool pDirty = false;

    public bool Dirty
    {
      get { return pDirty; }
      set { pDirty = value; }
    }

    public object this[int index]
    {
      get { return pItems[index]; }
      set
      {
        pItems[index] = value;
        pDirty = true;
      }
    }

    public object this[string name]
    {
      get { return pItems[name]; }
      set
      {
        pItems[name] = value;
        pDirty = true;
      }
    }

    public NameObjectCollectionBase.KeysCollection Keys
    {
      get { return (NameObjectCollectionBase.KeysCollection)pItems.Keys; }
    }

    public int Count
    {
      get { return pItems.Count; }
    }

    public Object SyncRoot
    {
      get { return this; }
    }

    public bool IsSynchronized
    {
      get { return false; }
    }

    public IEnumerator GetEnumerator()
    {
      return pItems.GetEnumerator(); 
    }

    public void Clear()
    {
      pItems.Clear();
      pDirty = true;
    }

    public void Remove(string name)
    {
      pItems.Remove(name);
      pDirty = true;
    }

    public void RemoveAt(int index)
    {
      if (index < 0 || index >= this.Count)
        throw new ArgumentOutOfRangeException("The specified index is not within the acceptable range.");

      pItems.RemoveAt(index);
      pDirty = true;
    }

    public void CopyTo(Array array, int index)
    {
      pItems.CopyTo(array, index);
    }
  }
}

注釈

インターフェイスは ISessionStateItemCollection 、 クラスによってアプリケーション コードに公開されるセッション項目のコレクションを HttpSessionStateContainer 定義します。

インターフェイスの ASP.NET 実装 ISessionStateItemCollection は クラス SessionStateItemCollection です。

セッション データを格納するために クラスから SessionStateStoreProviderBase 派生したクラスを作成する場合は、 クラスを SessionStateItemCollection 使用して格納されているオブジェクトを管理するか、独自のコレクション マネージャーに インターフェイスを実装 ISessionStateItemCollection できます。

インターフェイスを実装する場合は、実装をISessionStateItemCollection使用ISessionStateItemCollectionしてセッション変数を管理するために、 クラスを継承SessionStateStoreProviderBaseするクラスも作成する必要があります。

実装では ISessionStateItemCollection 、 インターフェイスのメンバーも実装する ICollection 必要があります。

プロパティ

Count

ICollection に格納されている要素の数を取得します。

(継承元 ICollection)
Dirty

コレクションが変更されたかどうかを示す値を取得または設定します。

IsSynchronized

ICollection へのアクセスが同期されている (スレッド セーフである) かどうかを示す値を取得します。

(継承元 ICollection)
Item[Int32]

コレクション内の値を数値インデックスで取得または設定します。

Item[String]

コレクション内の値を名前で取得または設定します。

Keys

コレクションに保存されているすべての値の変数名の一覧を取得します。

SyncRoot

ICollection へのアクセスを同期するために使用できるオブジェクトを取得します。

(継承元 ICollection)

メソッド

Clear()

セッション状態のコレクションからすべての値とキーを削除します。

CopyTo(Array, Int32)

ICollection の要素を Array にコピーします。Array の特定のインデックスからコピーが開始されます。

(継承元 ICollection)
GetEnumerator()

コレクションを反復処理する列挙子を返します。

(継承元 IEnumerable)
Remove(String)

コレクションから項目を削除します。

RemoveAt(Int32)

コレクション内の指定したインデックス位置の項目を削除します。

拡張メソッド

Cast<TResult>(IEnumerable)

IEnumerable の要素を、指定した型にキャストします。

OfType<TResult>(IEnumerable)

指定された型に基づいて IEnumerable の要素をフィルター処理します。

AsParallel(IEnumerable)

クエリの並列化を有効にします。

AsQueryable(IEnumerable)

IEnumerableIQueryable に変換します。

適用対象

製品 バージョン
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

こちらもご覧ください