Export (0) Print
Expand All

ISessionStateItemCollection Interface

Defines the contract for the collection used by ASP.NET session state to manage session.

Namespace:  System.Web.SessionState
Assembly:  System.Web (in System.Web.dll)

public interface ISessionStateItemCollection : ICollection, 
	IEnumerable

The ISessionStateItemCollection type exposes the following members.

  NameDescription
Public propertyCountGets the number of elements contained in the ICollection. (Inherited from ICollection.)
Public propertyDirtyGets or sets a value indicating whether the collection has been marked as changed.
Public propertyIsSynchronizedGets a value indicating whether access to the ICollection is synchronized (thread safe). (Inherited from ICollection.)
Public propertyItem[Int32]Gets or sets a value in the collection by numerical index.
Public propertyItem[String]Gets or sets a value in the collection by name.
Public propertyKeysGets a collection of the variable names for all values stored in the collection.
Public propertySyncRootGets an object that can be used to synchronize access to the ICollection. (Inherited from ICollection.)
Top

  NameDescription
Public methodClearRemoves all values and keys from the session-state collection.
Public methodCopyToCopies the elements of the ICollection to an Array, starting at a particular Array index. (Inherited from ICollection.)
Public methodGetEnumeratorReturns an enumerator that iterates through a collection. (Inherited from IEnumerable.)
Public methodRemoveDeletes an item from the collection.
Public methodRemoveAtDeletes an item at a specified index from the collection.
Top

  NameDescription
Public Extension MethodAsParallelEnables parallelization of a query. (Defined by ParallelEnumerable.)
Public Extension MethodAsQueryableConverts an IEnumerable to an IQueryable. (Defined by Queryable.)
Public Extension MethodCast<TResult>Casts the elements of an IEnumerable to the specified type. (Defined by Enumerable.)
Public Extension MethodOfType<TResult>Filters the elements of an IEnumerable based on a specified type. (Defined by Enumerable.)
Top

The ISessionStateItemCollection interface defines the collection of session items exposed to application code by the HttpSessionStateContainer class.

The ASP.NET implementation of the ISessionStateItemCollection interface is the SessionStateItemCollection class.

If you create a class derived from the SessionStateStoreProviderBase class to store session data, you can either use the SessionStateItemCollection class to manage the stored objects or implement the ISessionStateItemCollection interface on your own collection manager.

If you implement the ISessionStateItemCollection interface, you must also create a class that inherits the SessionStateStoreProviderBase class in order to make use of your ISessionStateItemCollection implementation to manage session variables.

An ISessionStateItemCollection implementation must also implement the members of the ICollection interface.

The following code example implements the ISessionStateItemCollection and uses the SortedList class to store session-state variable names and values.

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);
    }

  }

}

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft