SoapExtension.GetInitializer 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, kan een SOAP-extensie gegevens die specifiek zijn voor een XML-webservicemethode initialiseren tegen een eenmalige prestatiekosten.
Overloads
| Name | Description |
|---|---|
| GetInitializer(Type) |
Wanneer deze wordt overschreven in een afgeleide klasse, kan een SOAP-extensie gegevens initialiseren die specifiek zijn voor een klasse die een XML-webservice implementeert tegen een eenmalige prestatiekosten. |
| GetInitializer(LogicalMethodInfo, SoapExtensionAttribute) |
Wanneer deze wordt overschreven in een afgeleide klasse, kan een SOAP-extensie gegevens initialiseren die specifiek zijn voor een XML-webservicemethode met behulp van een kenmerk dat wordt toegepast op de XML-webservicemethode, met een eenmalige prestatiekosten. |
GetInitializer(Type)
Wanneer deze wordt overschreven in een afgeleide klasse, kan een SOAP-extensie gegevens initialiseren die specifiek zijn voor een klasse die een XML-webservice implementeert tegen een eenmalige prestatiekosten.
public:
abstract System::Object ^ GetInitializer(Type ^ serviceType);
public abstract object GetInitializer(Type serviceType);
abstract member GetInitializer : Type -> obj
Public MustOverride Function GetInitializer (serviceType As Type) As Object
Parameters
- serviceType
- Type
Het type klasse waarmee de XML-webservice wordt geïmplementeerd waarop de SOAP-extensie wordt toegepast.
Retouren
De Object SOAP-extensie initialiseert voor caching.
Voorbeelden
De volgende code laat zien hoe een SOAP-extensiespecifieke gegevens per XML-webservice kan opslaan. Als de SOAP-extensie is geconfigureerd met behulp van een configuratiebestand in plaats van een kenmerk, kan de SOAP-extensie gegevens opslaan voor elke klasse waarop de SOAP-extensie wordt toegepast. In dit voorbeeld wordt de naam opgeslagen van een bestand waarin de SOAP-berichten die naar en van de XML-webservicemethode worden verzonden, worden vastgelegd op basis van de naam van de klasse die de XML-webservice implementeert in de cache. Dit codevoorbeeld maakt deel uit van een volledig codevoorbeeld voor een TraceExtension SOAP-extensie die te vinden is in het SoapExtension klasseoverzicht.
// The extension was configured to run using a configuration file instead of an attribute applied to a
// specific XML Web service method. Return a file name based on the class implementing the XML Web service's type.
public:
virtual Object^ GetInitializer( Type^ WebServiceType ) override
{
// Return a file name to log the trace information to based on the passed in type.
return String::Format( "C:\\{0}.log", WebServiceType->FullName );
}
// The extension was configured to run using a configuration file instead of an attribute applied to a
// specific XML Web service method. Return a file name based on the class implementing the XML Web service's type.
public override object GetInitializer(Type WebServiceType)
{
// Return a file name to log the trace information to based on the passed in type.
return "C:\\" + WebServiceType.FullName + ".log";
}
' The extension was configured to run using a configuration file instead of an attribute applied to a
' specific XML Web service method. Return a file name based on the class implementing the XML Web service's type.
Public Overloads Overrides Function GetInitializer(WebServiceType As Type) As Object
' Return a file name to log the trace information to based on the passed in type.
Return "C:\" + WebServiceType.FullName + ".log"
End Function
Opmerkingen
De overbelasting van GetInitializer die wordt aangeroepen door ASP.NET is afhankelijk van hoe de SOAP-extensie is opgegeven. Er zijn twee methoden voor het opgeven van een SOAP-extensie:
Pas een aangepast kenmerk toe, afgeleid van SoapExtensionAttribute, op de afzonderlijke XML-webservicemethode.
Voeg een verwijzing toe in de web.config of app.config configuratiebestanden.
Als u een verwijzing naar een van de configuratiebestanden toevoegt, wordt de SOAP-extensie uitgevoerd voor alle XML-webservices binnen het bereik van dat configuratiebestand. Wanneer u opgeeft, roept een SOAP-extensie door te verwijzen naar een configuratiebestand, ASP.NET de GetInitializer overbelasting aan die wordt doorgegeven in een Type. Wanneer u een extensie opgeeft door een aangepast kenmerk toe te passen, roept ASP.NET de GetInitializer aan die een LogicalMethodInfo en een SoapExtensionAttribute doorgeeft.
Zie Configuratieopties voor XML-webservices die zijn gemaakt met ASP.NET voor meer informatie over het toevoegen van SOAP-extensies aan een configuratiebestand.
Van toepassing op
GetInitializer(LogicalMethodInfo, SoapExtensionAttribute)
Wanneer deze wordt overschreven in een afgeleide klasse, kan een SOAP-extensie gegevens initialiseren die specifiek zijn voor een XML-webservicemethode met behulp van een kenmerk dat wordt toegepast op de XML-webservicemethode, met een eenmalige prestatiekosten.
public:
abstract System::Object ^ GetInitializer(System::Web::Services::Protocols::LogicalMethodInfo ^ methodInfo, System::Web::Services::Protocols::SoapExtensionAttribute ^ attribute);
public abstract object GetInitializer(System.Web.Services.Protocols.LogicalMethodInfo methodInfo, System.Web.Services.Protocols.SoapExtensionAttribute attribute);
abstract member GetInitializer : System.Web.Services.Protocols.LogicalMethodInfo * System.Web.Services.Protocols.SoapExtensionAttribute -> obj
Public MustOverride Function GetInitializer (methodInfo As LogicalMethodInfo, attribute As SoapExtensionAttribute) As Object
Parameters
- methodInfo
- LogicalMethodInfo
Een LogicalMethodInfo weergave van het specifieke prototype van de functie voor de XML-webservicemethode waarop de SOAP-extensie wordt toegepast.
- attribute
- SoapExtensionAttribute
De SoapExtensionAttribute methode die is toegepast op de XML-webservicemethode.
Retouren
De Object SOAP-extensie initialiseert voor caching.
Voorbeelden
De volgende code laat zien hoe u SOAP-extensiespecifieke gegevens kunt verkrijgen die zijn doorgegeven met behulp van een klasse die is afgeleid van SoapExtensionAttributeen die gegevens vervolgens in de cache kunt GetInitializeropslaan. Dit codevoorbeeld maakt deel uit van een volledig codevoorbeeld voor een TraceExtension SOAP-extensie die te vinden is in het SoapExtension klasseoverzicht. Dit codevoorbeeld is afhankelijk van een TraceExtensionAttribute doorgegeven aan de attribute parameter. In het volledige codevoorbeeld TraceExtensionAttribute wordt een SoapExtensionAttribute eigenschap afgeleid van en toegevoegd Filename . Dit is wat GetInitializer in de cache wordt opgeslagen.
public:
// When the SOAP extension is accessed for the first time, cache the
// file name passed in by the SoapExtensionAttribute.
virtual Object^ GetInitializer( LogicalMethodInfo^ /*methodInfo*/, SoapExtensionAttribute^ attribute ) override
{
return (dynamic_cast<TraceExtensionAttribute^>(attribute))->Filename;
}
// When the SOAP extension is accessed for the first time, cache the
// file name passed in by the SoapExtensionAttribute.
public override object GetInitializer(LogicalMethodInfo methodInfo,
SoapExtensionAttribute attribute)
{
return ((TraceExtensionAttribute) attribute).Filename;
}
' When the SOAP extension is accessed for the first time,
' cache the file name passed in by the SoapExtensionAttribute.
Public Overloads Overrides Function GetInitializer( _
methodInfo As LogicalMethodInfo, _
attribute As SoapExtensionAttribute) As Object
Return CType(attribute, TraceExtensionAttribute).Filename
End Function
Opmerkingen
Als de SOAP-extensie is geconfigureerd met behulp van een configuratiebestand, ziet u de GetInitializer overbelasting die een Type.
Een SOAP-extensie heeft drie mogelijkheden om gegevens te initialiseren en ze hebben allemaal verschillende doeleinden:
Klasseconstructor: de klasseconstructor wordt elke keer aangeroepen wanneer een SOAP-extensie wordt geïnstantieerd en wordt meestal gebruikt om lidvariabelen te initialiseren.
GetInitializer - GetInitializerwordt echter slechts één keer aangeroepen, de eerste keer dat een SOAP-aanvraag wordt ingediend bij een XML-webservicemethode. Als een aangepast kenmerk wordt toegepast op de XML-webservicemethode, wordt de GetInitializer methode aangeroepen. Hierdoor kan de SOAP-extensie de LogicalMethodInfo xml-webservicemethode voor prototypegegevens ondervragen of toegang krijgen tot extensiespecifieke gegevens die worden doorgegeven door een klasse die is afgeleid van SoapExtensionAttribute. De retourwaarde wordt in de cache opgeslagen door ASP.NET en doorgegeven aan volgende Initialize methoden. Daarom wordt initialisatie die wordt GetInitializer uitgevoerd, in feite ingekapseld in een eenmalige prestatietreffer.
Initialize - Initialize wordt elke keer aangeroepen wanneer een SOAP-aanvraag wordt ingediend bij een XML-webservicemethode, maar heeft een voordeel ten opzichte van de klasseconstructor, omdat de Object geïnitialiseerde aanvraag GetInitializer wordt doorgegeven.