Provides a base class for all strongly typed collections that manage IStateManager objects.
Assembly: System.Web (in System.Web.dll)
Thetype exposes the following members.
|Clear||Removes all items from the collection.|
|CopyTo||Copies the elements of the collection to an array, starting at a particular array index.|
|CreateKnownType||When overridden in a derived class, creates an instance of a class that implements IStateManager. The type of object created is based on the specified member of the collection returned by the GetKnownTypes method.|
|Equals(Object)||Determines whether the specified object is equal to the current object. (Inherited from Object.)|
|Finalize||Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)|
|GetEnumerator||Returns an iterator that iterates through the collection.|
|GetHashCode||Serves as the default hash function. (Inherited from Object.)|
|GetKnownTypes||When overridden in a derived class, gets an array of IStateManager types that the collection can contain.|
|GetType||Gets the Type of the current instance. (Inherited from Object.)|
|MemberwiseClone||Creates a shallow copy of the current Object. (Inherited from Object.)|
|OnClear||When overridden in a derived class, performs additional work before the Clear method removes all items from the collection.|
|OnClearComplete||When overridden in a derived class, performs additional work after the Clear method finishes removing all items from the collection.|
|OnInsert||When overridden in a derived class, performs additional work before the Insert or Add method adds an item to the collection.|
|OnInsertComplete||When overridden in a derived class, performs additional work after the Insert or Add method adds an item to the collection.|
|OnRemove||When overridden in a derived class, performs additional work before the Remove or RemoveAt method removes the specified item from the collection.|
|OnRemoveComplete||When overridden in a derived class, performs additional work after the Remove or RemoveAt method removes the specified item from the collection.|
|OnValidate||When overridden in a derived class, validates an element of the collection.|
|SetDirty||Forces the entire collection to be serialized into view state.|
|SetDirtyObject||When overridden in a derived class, instructs an object contained by the collection to record its entire state to view state, rather than recording only change information.|
|ToString||Returns a string that represents the current object. (Inherited from Object.)|
|AsParallel||Enables parallelization of a query. (Defined by ParallelEnumerable.)|
|AsQueryable||Converts an IEnumerable to an IQueryable. (Defined by Queryable.)|
|Cast<TResult>||Casts the elements of an IEnumerable to the specified type. (Defined by Enumerable.)|
|OfType<TResult>||Filters the elements of an IEnumerable based on a specified type. (Defined by Enumerable.)|
|ICollection::Count||Infrastructure. Gets the number of elements contained in the collection.|
|ICollection::IsSynchronized||Infrastructure. Gets a value indicating whether the collection is synchronized (thread safe). This method returns false in all cases.|
|ICollection::SyncRoot||Infrastructure. Gets an object that can be used to synchronize access to the collection. This method returns nullptr in all cases.|
|IEnumerable::GetEnumerator||Infrastructure. Returns an iterator that iterates through the collection.|
|IList::Add||Adds an item to the collection.|
|IList::Clear||Infrastructure. Removes all items from the collection.|
|IList::Contains||Determines whether the collection contains a specific value.|
|IList::IndexOf||Determines the index of a specified item in the collection.|
|IList::Insert||Inserts an item into the collection at the specified index.|
|IList::IsFixedSize||Infrastructure. Gets a value indicating whether the collection has a fixed size. This method returns false in all cases.|
|IList::IsReadOnly||Infrastructure. Gets a value indicating whether the collection is read-only.|
|IList::Item||Infrastructure. Gets the IStateManager element at the specified index.|
|IList::Remove||Removes the first occurrence of the specified object from the collection.|
|IList::RemoveAt||Removes the IStateManager element at the specified index.|
|IStateManager::IsTrackingViewState||Gets a value indicating whether the collection is saving changes to its view state.|
|IStateManager::LoadViewState||Restores the previously saved view state of the collection and the IStateManager items it contains.|
|IStateManager::SaveViewState||Saves the changes to the collection and each IStateManager object it contains since the time the page was posted back to the server.|
|IStateManager::TrackViewState||Causes the collection and each of the IStateManager objects it contains to track changes to their view state so they can be persisted across requests for the same page.|
The class is the base class for all strongly typed collections that store IStateManager elements, including DataControlFieldCollection, ParameterCollection, StyleCollection, TreeNodeBindingCollection, and others. The collection manages its own state as well as the state of the elements it contains. Therefore, a call to SaveViewState saves the state of the collection and the state of all the elements currently contained by the collection.
The most important methods to consider when deriving from the class are CreateKnownType, GetKnownTypes, OnValidate, SetDirty, and SetDirtyObject. The CreateKnownType and GetKnownTypes methods are used to store an index in view state for the type of a contained element. Storing an index rather than a fully qualified type name improves performance. The OnValidate method is called whenever elements of the collection are manipulated, and validates the elements according to business rules. Currently, the implementation of the OnValidate method prohibits nullptr objects from being stored in the collection; however, you can override this method to define your own validation behavior in a derived type. The SetDirty method forces the entire collection to be serialized to view state, rather than just serializing changes made to state since the last time it was loaded. The SetDirtyObject method is an abstract method you can implement to perform this same behavior at the element level.
stores assembly-qualified type names of the collection items in view state. A site visitor could decode the view state and retrieve the type name. If this scenario creates a security concern in your Web site, you can manually encrypt the type name before placing it in the view state.
The following code example demonstrates how to derive a strongly typed collection class from to contain IStateManager objects. In this example, the CycleCollection is derived to contain instances of the abstract Cycle class, which can be either Bicycle or Tricycle objects. The Cycle class implements the IStateManager interface because it stores the value of the CycleColor property in view state.