Freigeben über


SoapExtension.Initialize-Methode

Ermöglicht beim Überschreiben in einer abgeleiteten Klasse, dass eine SOAP-Erweiterung sich selbst mit den in der GetInitializer-Methode zwischengespeicherten Daten initialisiert.

Namespace: System.Web.Services.Protocols
Assembly: System.Web.Services (in system.web.services.dll)

Syntax

'Declaration
Public MustOverride Sub Initialize ( _
    initializer As Object _
)
'Usage
Dim instance As SoapExtension
Dim initializer As Object

instance.Initialize(initializer)
public abstract void Initialize (
    Object initializer
)
public:
virtual void Initialize (
    Object^ initializer
) abstract
public abstract void Initialize (
    Object initializer
)
public abstract function Initialize (
    initializer : Object
)

Parameter

  • initializer
    Das von GetInitializer zurückgegebene Object, das in ASP.NET zwischengespeichert wurde.

Hinweise

Eine SOAP-Erweiterung verfügt über drei Möglichkeiten zum Initialisieren von Daten, die jeweils unterschiedlichen Zwecken dienen:

  • Klassenkonstruktor – Der Klassenkonstruktor wird bei jeder Instanziierung einer SOAP-Erweiterung aufgerufen und meist zum Initialisieren von Membervariablen verwendet.

  • GetInitializer - GetInitializer wird jedoch nur einmal aufgerufen, und zwar, wenn erstmals eine SOAP-Anforderung an eine XML-Webdienstmethode erfolgt. Wenn ein benutzerdefiniertes Attribut auf eine XML-Webdienstmethode angewendet wird, wird die GetInitializer-Methode aufgerufen. Dadurch kann die SOAP-Erweiterung die LogicalMethodInfo einer XML-Webdienstmethode nach Prototypinformationen abfragen oder auf erweiterungsspezifische Daten zugreifen, die durch eine von SoapExtensionAttribute abgeleitete Klasse übergeben werden. Der Rückgabewert wird von ASP.NET zwischengespeichert und an nachfolgende Initialize-Methoden übergeben. Daher führt die in GetInitializer ausgeführte Initialisierung nur zu einer einmaligen Leistungsminderung.

  • Initialize - Initialize wird bei jeder SOAP-Anforderung an eine XML-Webdienstmethode aufgerufen. Der Vorteil gegenüber dem Klassenkonstruktor besteht jedoch darin, dass das in GetInitializer initialisierte Object an diese übergeben wird.

Hinweis

Sie können auch eine nicht von SoapExtensionAttribute abgeleitete SOAP-Erweiterung hinzufügen, indem Sie <soapExtensionTypes>-Element in einer Konfigurationsdatei verwenden. Ausführliche Informationen finden Sie unter <soapExtensionTypes>-Element und Änderung von SOAP-Nachrichten mithilfe von SOAP-Erweiterungen.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der im Verlauf der GetInitializer-Methode zwischengespeicherten Daten.

' Receive the file name stored by GetInitializer and store it in a 
' member variable for this specific instance.
Public Overrides Sub Initialize(initializer As Object)
    m_filename = CStr(initializer)
End Sub
// Receive the file name stored by GetInitializer and store it in
// a member variable for this specific instance.
public override void Initialize(object initializer) {
    filename = (string) initializer;
}
   // Receive the file name stored by GetInitializer and store it in
   // a member variable for this specific instance.
public:
   virtual void Initialize( Object^ initializer ) override
   {
      filename = dynamic_cast<String^>(initializer);
   }
// Receive the file name stored by GetInitializer and store it in
// a member variable for this specific instance.
public void Initialize(Object initializer)
{
    filename = (String)(initializer);
} //Initialize

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

SoapExtension-Klasse
SoapExtension-Member
System.Web.Services.Protocols-Namespace