StateManagedCollection Classe
TOC
Réduire la table des matières
Développer la table des matières
Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

StateManagedCollection, classe

 

Publication: mai 2016

Fournit une classe de base pour toutes les collections fortement typées qui gèrent des objets IStateManager.

Espace de noms:   System.Web.UI
Assembly:  System.Web (dans System.Web.dll)


public abstract class StateManagedCollection : IList, ICollection, 
	IEnumerable, IStateManager

NomDescription
System_CAPS_protmethodStateManagedCollection()

Initialise une nouvelle instance de la classe StateManagedCollection.

NomDescription
System_CAPS_pubpropertyCount

Obtient le nombre d'éléments contenus dans la collection StateManagedCollection.

NomDescription
System_CAPS_pubmethodClear()

Supprime tous les éléments de la collection StateManagedCollection.

System_CAPS_pubmethodCopyTo(Array, Int32)

Copie les éléments de la collection StateManagedCollection dans un tableau, en commençant au niveau d'un index de tableau particulier.

System_CAPS_protmethodCreateKnownType(Int32)

En cas de substitution dans une classe dérivée, crée une instance d'une classe qui implémente IStateManager. Le type d'objet créé repose sur le membre spécifié de la collection retournée par la méthode GetKnownTypes.

System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_protmethodFinalize()

Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)

System_CAPS_pubmethodGetEnumerator()

Retourne un itérateur qui itère au sein de la collection StateManagedCollection.

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_protmethodGetKnownTypes()

En cas de substitution dans une classe dérivée, obtient un tableau de types IStateManager que la collection StateManagedCollection peut contenir.

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_protmethodMemberwiseClone()

Crée une copie superficielle du Object actuel.(Hérité de Object.)

System_CAPS_protmethodOnClear()

En cas de substitution dans une classe dérivée, exécute une tâche supplémentaire avant que la méthode Clear supprime tous les éléments de la collection.

System_CAPS_protmethodOnClearComplete()

En cas de substitution dans une classe dérivée, exécute une tâche supplémentaire une fois tous les éléments de la collection supprimés par la méthode Clear.

System_CAPS_protmethodOnInsert(Int32, Object)

En cas de substitution dans une classe dérivée, exécute une tâche supplémentaire avant que la méthode M:System.Web.UI.StateManagedCollection.System.Collections.IList.Insert(System.Int32,System.Object) ou M:System.Web.UI.StateManagedCollection.System.Collections.IList.Add(System.Object) ajoute un élément à la collection.

System_CAPS_protmethodOnInsertComplete(Int32, Object)

En cas de substitution dans une classe dérivée, exécute une tâche supplémentaire après que la méthode M:System.Web.UI.StateManagedCollection.System.Collections.IList.Insert(System.Int32,System.Object) ou M:System.Web.UI.StateManagedCollection.System.Collections.IList.Add(System.Object) a ajouté un élément à la collection.

System_CAPS_protmethodOnRemove(Int32, Object)

En cas de substitution dans une classe dérivée, exécute une tâche supplémentaire avant que la méthode IList.Remove ou IList.RemoveAt supprime l'élément spécifié de la collection.

System_CAPS_protmethodOnRemoveComplete(Int32, Object)

En cas de substitution dans une classe dérivée, exécute une tâche supplémentaire après que la méthode IList.Remove ou IList.RemoveAt a supprimé l'élément spécifié de la collection.

System_CAPS_protmethodOnValidate(Object)

En cas de substitution dans une classe dérivée, valide un élément de la collection StateManagedCollection.

System_CAPS_pubmethodSetDirty()

Force la sérialisation de l'intégralité de la collection StateManagedCollection dans l'état d'affichage.

System_CAPS_protmethodSetDirtyObject(Object)

En cas de substitution dans une classe dérivée, commande à un object contenu dans la collection d'enregistrer l'intégralité de son état dans l'état d'affichage, plutôt que d'enregistrer uniquement des informations relatives aux modifications.

System_CAPS_pubmethodToString()

Retourne une chaîne qui représente l'objet actuel.(Hérité de Object.)

NomDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethodIEnumerable.GetEnumerator()

Cette API prend en charge l'infrastructure produit et n'est pas destinée à être utilisée directement à partir de votre code. Retourne un itérateur qui itère au sein de la collection StateManagedCollection.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIList.Add(Object)

Ajoute un élément à la collection StateManagedCollection.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIList.Clear()

Cette API prend en charge l'infrastructure produit et n'est pas destinée à être utilisée directement à partir de votre code. Supprime tous les éléments de la collection StateManagedCollection.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIList.Contains(Object)

Détermine si la collection StateManagedCollection contient une valeur spécifique.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIList.IndexOf(Object)

Détermine l'index d'un élément spécifié de la collection StateManagedCollection.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIList.Insert(Int32, Object)

Insère un élément dans la collection StateManagedCollection au niveau de l'index spécifié.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIList.Remove(Object)

Supprime la première occurrence de l'objet spécifié dans la collection StateManagedCollection.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIList.RemoveAt(Int32)

Supprime l'élément IStateManager au niveau de l'index spécifié.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStateManager.LoadViewState(Object)

Restaure l'état d'affichage précédemment enregistré de la collection StateManagedCollection et les éléments IStateManager qu'elle contient.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStateManager.SaveViewState()

Enregistre les modifications apportées à la collection StateManagedCollection et à chaque objet IStateManager qu'elle contient, depuis la publication de la page sur le serveur.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIStateManager.TrackViewState()

Commande à la collection StateManagedCollection et à chacun des objets IStateManager qu'elle contient de procéder au suivi des modifications apportées à leur état d'affichage afin qu'ils puissent être rendus persistants au fil des requêtes d'une même page.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.Count

Cette API prend en charge l'infrastructure produit et n'est pas destinée à être utilisée directement à partir de votre code. Obtient le nombre d'éléments contenus dans la collection StateManagedCollection.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.IsSynchronized

Cette API prend en charge l'infrastructure produit et n'est pas destinée à être utilisée directement à partir de votre code. Obtient une valeur indiquant si la collection StateManagedCollection est synchronisée (thread-safe). Cette méthode retourne false dans tous les cas.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.SyncRoot

Cette API prend en charge l'infrastructure produit et n'est pas destinée à être utilisée directement à partir de votre code. Obtient un objet qui peut être utilisé pour synchroniser l'accès à la collection StateManagedCollection. Cette méthode retourne null dans tous les cas.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIList.IsFixedSize

Cette API prend en charge l'infrastructure produit et n'est pas destinée à être utilisée directement à partir de votre code. Obtient une valeur indiquant si la collection StateManagedCollection est de taille fixe. Cette méthode retourne false dans tous les cas.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIList.IsReadOnly

Cette API prend en charge l'infrastructure produit et n'est pas destinée à être utilisée directement à partir de votre code. Obtient une valeur indiquant si la collection StateManagedCollection est en lecture seule.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIList.Item[Int32]

Cette API prend en charge l'infrastructure produit et n'est pas destinée à être utilisée directement à partir de votre code. Obtient l'élément IStateManager au niveau de l'index spécifié.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIStateManager.IsTrackingViewState

Obtient une valeur indiquant si la collection StateManagedCollection enregistre les modifications apportées à son état d'affichage.

NomDescription
System_CAPS_pubmethodAsParallel()

Surchargé. Active la parallélisation d'une requête.(Défini par ParallelEnumerable.)

System_CAPS_pubmethodAsQueryable()

Surchargé. Convertit un IEnumerable à un IQueryable.(Défini par Queryable.)

System_CAPS_pubmethodCast<TResult>()

Convertit les éléments d'un IEnumerable au type spécifié.(Défini par Enumerable.)

System_CAPS_pubmethodOfType<TResult>()

Filtre les éléments d'un IEnumerable basé sur un type spécifié.(Défini par Enumerable.)

Le StateManagedCollection est la classe de base pour toutes les collections fortement typées qui stockent IStateManager éléments, y compris DataControlFieldCollection, ParameterCollection, StyleCollection, TreeNodeBindingCollection, et d'autres. Le StateManagedCollection collection gère son propre état ainsi que l'état des éléments qu'il contient. Par conséquent, un appel à IStateManager.SaveViewState enregistre l'état de la collection et l'état de tous les éléments actuellement contenus dans la collection.

Les méthodes les plus importantes à prendre en compte lors de la dérivation à partir de la StateManagedCollection classe sont CreateKnownType, GetKnownTypes, OnValidate, SetDirty, et SetDirtyObject. Le CreateKnownType et GetKnownTypes méthodes sont utilisées pour stocker un index dans la vue état pour le type d'un élément contenu. Stocker un index plutôt qu'un nom de type qualifié complet améliore les performances. Le OnValidate méthode est appelée chaque fois que les éléments de la collection sont manipulés et valide les éléments selon les règles d'entreprise. Actuellement, l'implémentation de la OnValidate méthode interdit null objets d'être stocké dans la collection ; Toutefois, vous pouvez substituer cette méthode pour définir votre propre comportement de validation dans un type dérivé. Le SetDirty méthode force la collection entière à l'état d'affichage, au lieu de sérialiser uniquement les modifications apportées à l'état depuis la dernière fois qu'il a été chargé. Le SetDirtyObject méthode est une méthode abstraite que vous pouvez implémenter pour exécuter ce même comportement au niveau de l'élément.

System_CAPS_security Sécurité Remarque

StateManagedCollection magasins qualifié d'assembly tapez les noms des éléments dans la vue États de la collection. Un visiteur du site peut décoder l'état d'affichage et récupérer le nom de type. Si ce scénario crée un problème de sécurité de votre site Web, vous pouvez chiffrer manuellement le nom de type avant de les placer dans l'état d'affichage.

L'exemple de code suivant montre comment dériver une classe de collection fortement typée de StateManagedCollection contient IStateManager objets. Dans cet exemple, le CycleCollection est dérivé pour contenir des instances de l'abstraite Cycle (classe), qui peut être Bicycle ou Tricycle objets. La Cycle classe implémente le IStateManager car elle stocke la valeur de l'interface du CycleColor état d'affichage de la propriété.

namespace Samples.AspNet.CS.Controls {

    using System;
    using System.Security.Permissions;
    using System.Collections;
    using System.ComponentModel;
    using System.Drawing;           
    using System.Web;
    using System.Web.UI;            
    //////////////////////////////////////////////////////////////
    //
    // The strongly typed CycleCollection class is a collection
    // that contains Cycle class instances, which implement the
    // IStateManager interface.
    //
    //////////////////////////////////////////////////////////////
    [AspNetHostingPermission(SecurityAction.Demand, 
        Level=AspNetHostingPermissionLevel.Minimal)]
    public sealed class CycleCollection : StateManagedCollection {

        private static readonly Type[] _typesOfCycles 
            = new Type[] { typeof(Bicycle), typeof(Tricycle) };

        protected override object CreateKnownType(int index) {
            switch(index) {
                case 0:
                    return new Bicycle();
                case 1:
                    return new Tricycle();                    
                default:
                    throw new ArgumentOutOfRangeException("Unknown Type");
            }            
        }

        protected override Type[] GetKnownTypes() {
            return _typesOfCycles;
        }

        protected override void SetDirtyObject(object o) {
            ((Cycle)o).SetDirty();
        }

    }
    //////////////////////////////////////////////////////////////
    //
    // The abstract Cycle class represents bicycles and tricycles.
    //
    //////////////////////////////////////////////////////////////
    public abstract class Cycle : IStateManager {

        protected internal Cycle(int numWheels) : this(numWheels, "Red"){ }

        protected internal Cycle(int numWheels, String color) {    
            numberOfWheels = numWheels;
            CycleColor = color;
        }

        private int numberOfWheels = 0;
        public int NumberOfWheels {
            get { return numberOfWheels; }
        }

        public string CycleColor {
            get { 
                object o = ViewState["Color"];
                return (null == o) ? String.Empty : o.ToString() ;
            }
            set {
                ViewState["Color"] = value;            
            }        
        }

        internal void SetDirty() {
            ViewState.SetDirty(true);
        }

        // Because Cycle does not derive from Control, it does not 
        // have access to an inherited view state StateBag object.
        private StateBag viewState;
        private StateBag ViewState {
            get {
                if (viewState == null) {
                    viewState = new StateBag(false);
                    if (isTrackingViewState) {
                        ((IStateManager)viewState).TrackViewState();
                    }
                }
                return viewState;
            }
        }

        // The IStateManager implementation.
        private bool isTrackingViewState;
        bool IStateManager.IsTrackingViewState {
            get {
                return isTrackingViewState;
            }
        }

        void IStateManager.LoadViewState(object savedState) {
            object[] cycleState = (object[]) savedState;

            // In SaveViewState, an array of one element is created.
            // Therefore, if the array passed to LoadViewState has 
            // more than one element, it is invalid.
            if (cycleState.Length != 1) {
                throw new ArgumentException("Invalid Cycle View State");
            }

            // Call LoadViewState on the StateBag object.
            ((IStateManager)ViewState).LoadViewState(cycleState[0]);
        }

        // Save the view state by calling the StateBag's SaveViewState
        // method.
        object IStateManager.SaveViewState() {
            object[] cycleState = new object[1];

            if (viewState != null) {
                cycleState[0] = ((IStateManager)viewState).SaveViewState();
            }
            return cycleState;
        }

        // Begin tracking view state. Check the private variable, because 
        // if the view state has not been accessed or set, then it is not  
        // being used and there is no reason to store any view state.
        void IStateManager.TrackViewState() {
            isTrackingViewState = true;
            if (viewState != null) {
                ((IStateManager)viewState).TrackViewState();
            }
        }        
    }

    public sealed class Bicycle : Cycle {

        // Create a red Cycle with two wheels.
        public Bicycle() : base(2) {}    
    }

    public sealed class Tricycle : Cycle {

        // Create a red Cycle with three wheels.
        public Tricycle() : base(3) {}
    }

}

.NET Framework
Disponible depuis 2.0

Tous les membres statiques (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Retour au début
Afficher:
© 2016 Microsoft