Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

StateManagedCollection.CreateKnownType-Methode

Aktualisiert: November 2007

Beim Überschreiben in einer abgeleiteten Klasse wird eine Instanz einer Klasse erstellt, die IStateManager implementiert. Der Typ des erstellten Objekts basiert auf dem angegebenen Member der Auflistung, der von der GetKnownTypes-Methode zurückgegeben wird.

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

protected virtual Object CreateKnownType(
	int index
)
protected Object CreateKnownType(
	int index
)
protected function CreateKnownType(
	index : int
) : Object

Parameter

index
Typ: System.Int32
Der Index des zu erstellenden IStateManager aus der geordneten Liste von Typen, die von GetKnownTypes zurückgegeben wird.

Rückgabewert

Typ: System.Object
Eine Instanz einer von IStateManager abgeleiteten Klasse, entsprechend dem angegebenen index.

AusnahmeBedingung
InvalidOperationException

In allen Fällen ohne Überschreibung in einer abgeleiteten Klasse.

Die CreateKnownType-Methode wird intern von der StateManagedCollection-Auflistung in ihrer Implementierung der IStateManagerLoadViewState(Object)-Methode aufgerufen. Abgeleitete Auflistungen überschreiben die CreateKnownType-Methode, um eine Standardinstanz des IStateManager-Typs zurückzugeben, der vom bereitgestellten index angegeben wird. Dieser Typ entspricht einem von der GetKnownTypes-Methode zurückgegebenen Typ.

Im folgenden Codebeispiel wird veranschaulicht, wie eine stark typisierte StateManagedCollection-Klasse die CreateKnownType-Methode implementiert. Die CycleCollection-Implementierung von CreateKnownType gibt abhängig vom übergebenen Index entweder die Standardinstanz eines Bicycle-Objekts oder die eines Tricycle-Objekts zurück. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels für die StateManagedCollection-Klasse.

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

}


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0
Anzeigen: