StateManagedCollection.CreateKnownType(Int32) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Wanneer deze wordt overschreven in een afgeleide klasse, maakt u een exemplaar van een klasse die wordt geïmplementeerd IStateManager. Het type object dat is gemaakt, is gebaseerd op het opgegeven lid van de verzameling die door de GetKnownTypes() methode wordt geretourneerd.
protected:
virtual System::Object ^ CreateKnownType(int index);
protected virtual object CreateKnownType(int index);
abstract member CreateKnownType : int -> obj
override this.CreateKnownType : int -> obj
Protected Overridable Function CreateKnownType (index As Integer) As Object
Parameters
- index
- Int32
De index, uit de geordende lijst met typen die worden geretourneerd door GetKnownTypes(), van het type IStateManager dat moet worden gemaakt.
Retouren
Een exemplaar van een klasse die is afgeleid IStateManagervan, volgens de index opgegeven.
Uitzonderingen
In alle gevallen wanneer ze niet worden overschreven in een afgeleide klasse.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe een sterk getypte StateManagedCollection klasse de CreateKnownType methode implementeert. De CycleCollection implementatie van CreateKnownType retourneert het standaardexemplaren van een Bicycle of Tricycle object, afhankelijk van de doorgegeven index. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de 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();
}
}
'////////////////////////////////////////////////////////////
'
' 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 NotInheritable Class CycleCollection
Inherits StateManagedCollection
Private Shared _typesOfCycles() As Type = _
{GetType(Bicycle), GetType(Tricycle)}
Protected Overrides Function CreateKnownType(ByVal index As Integer) As Object
Select Case index
Case 0
Return New Bicycle()
Case 1
Return New Tricycle()
Case Else
Throw New ArgumentOutOfRangeException("Unknown Type")
End Select
End Function
Protected Overrides Function GetKnownTypes() As Type()
Return _typesOfCycles
End Function
Protected Overrides Sub SetDirtyObject(ByVal o As Object)
CType(o, Cycle).SetDirty()
End Sub
End Class
Opmerkingen
De CreateKnownType methode wordt intern aangeroepen door de StateManagedCollection verzameling in de implementatie van de StateManagedCollection.IStateManager.LoadViewState methode. Afgeleide verzamelingen overschrijven de CreateKnownType methode om een standaardexemplaren te retourneren van het IStateManager type dat is geïdentificeerd door de opgegeven index, die wordt toegewezen aan een van de typen die door de GetKnownTypes methode worden geretourneerd.