SoapExtension.GetInitializer Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ermöglicht beim Überschreiben in einer abgeleiteten Klasse, dass eine SOAP-Erweiterung unter einmaligen Leistungseinbußen Daten einer XML-Webdienstmethode initialisiert.
Überlädt
GetInitializer(Type) |
Ermöglicht beim Überschreiben in einer abgeleiteten Klasse, dass eine SOAP-Erweiterung unter einmaligen Leistungseinbußen Daten einer Klasse initialisiert, die einen XML-Webdienst implementiert. |
GetInitializer(LogicalMethodInfo, SoapExtensionAttribute) |
Ermöglicht beim Überschreiben in einer abgeleiteten Klasse, dass eine SOAP-Erweiterung unter einmaligen Leistungseinbußen Daten einer XML-Webdienstmethode unter Verwendung eines Attributs initialisiert, das auf die XML-Webdienstmethode angewendet wird. |
GetInitializer(Type)
Ermöglicht beim Überschreiben in einer abgeleiteten Klasse, dass eine SOAP-Erweiterung unter einmaligen Leistungseinbußen Daten einer Klasse initialisiert, die einen XML-Webdienst implementiert.
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
Parameter
- serviceType
- Type
Der Typ der Klasse, die den XML-Webdienst implementiert, auf den die SOAP-Erweiterung angewendet wird.
Gibt zurück
Das Object, das die SOAP-Erweiterung für das Zwischenspeichern initialisiert.
Beispiele
Im folgenden Code wird veranschaulicht, wie soap-erweiterungsspezifische Daten pro XML-Webdienst gespeichert werden können. Wenn die SOAP-Erweiterung mithilfe einer Konfigurationsdatei anstelle eines Attributs konfiguriert ist, kann die SOAP-Erweiterung Daten für jede Klasse speichern, auf die die SOAP-Erweiterung angewendet wird. In diesem Beispiel wird der Name einer Datei gespeichert, in der die an und von der XML-Webdienstmethode gesendeten SOAP-Nachrichten basierend auf dem Namen der Klasse protokolliert werden, die den XML-Webdienst implementiert, im Cache. Dieses Codebeispiel ist Teil eines vollständigen Codebeispiels für eine TraceExtension-SOAP-Erweiterung, die in der SoapExtension Klassenübersicht zu finden ist.
// 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
Hinweise
Die Überladung von GetInitializer , die von ASP.NET aufgerufen wird, hängt davon ab, wie die SOAP-Erweiterung angegeben wurde. Es gibt zwei Methoden zum Angeben einer SOAP-Erweiterung:
Wenden Sie ein benutzerdefiniertes Attribut, das von abgeleitet wird SoapExtensionAttribute, auf die einzelne XML-Webdienstmethode an.
Fügen Sie einen Verweis entweder in den web.config- oder app.config-Konfigurationsdateien hinzu.
Wenn Sie einen Verweis auf eine der Konfigurationsdateien hinzufügen, wird die SOAP-Erweiterung für alle XML-Webdienste im Bereich dieser Konfigurationsdatei ausgeführt. Wenn Sie eine SOAP-Erweiterung durch Verweisen auf eine Konfigurationsdatei angeben, ruft ASP.NET die Überladung auf, die GetInitializer einen Typeübergibt. Wenn Sie eine Erweiterung durch Anwenden eines benutzerdefinierten Attributs angeben, ruft ASP.NET die auf, die GetInitializer eine und eine SoapExtensionAttributeLogicalMethodInfo übergibt.
Ausführliche Informationen zum Hinzufügen von SOAP-Erweiterungen zu einer Konfigurationsdatei finden Sie unter Konfigurationsoptionen für mit ASP.NET erstellte XML-Webdienste.
Gilt für:
GetInitializer(LogicalMethodInfo, SoapExtensionAttribute)
Ermöglicht beim Überschreiben in einer abgeleiteten Klasse, dass eine SOAP-Erweiterung unter einmaligen Leistungseinbußen Daten einer XML-Webdienstmethode unter Verwendung eines Attributs initialisiert, das auf die XML-Webdienstmethode angewendet wird.
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
Parameter
- methodInfo
- LogicalMethodInfo
Eine LogicalMethodInfo, die den entsprechenden Funktionsprototyp für die XML-Webdienstmethode darstellt, auf die die SOAP-Erweiterung angewendet wird.
- attribute
- SoapExtensionAttribute
Das auf die XML-Webdienstmethode angewendete SoapExtensionAttribute.
Gibt zurück
Das Object, das die SOAP-Erweiterung für das Zwischenspeichern initialisiert.
Beispiele
Der folgende Code veranschaulicht, wie Sie soap-erweiterungsspezifische Daten abrufen können, die mit einer Klasse übergeben werden, die von SoapExtensionAttributeabgeleitet wird, und diese Daten dann in GetInitializerzwischenspeichern. Dieses Codebeispiel ist Teil eines vollständigen Codebeispiels für eine TraceExtension
SOAP-Erweiterung, das in der SoapExtension Klassenübersicht zu finden ist. Dieses Codebeispiel basiert darauf, dass ein TraceExtensionAttribute
an den attribute
-Parameter übergeben wird. Im vollständigen Codebeispiel TraceExtensionAttribute
leitet von SoapExtensionAttribute ab und fügt eine Filename
Eigenschaft hinzu, die im Cache gespeichert wird GetInitializer .
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
Hinweise
Wenn die SOAP-Erweiterung mithilfe einer Konfigurationsdatei konfiguriert ist, sehen Sie sich die GetInitializer Überladung an, die ein Typeakzeptiert.
Eine SOAP-Erweiterung hat drei Möglichkeiten, Daten zu initialisieren, und alle haben unterschiedliche Zwecke:
Klassenkonstruktor: Der Klassenkonstruktor wird jedes Mal aufgerufen, wenn eine SOAP-Erweiterung instanziiert wird, und wird in der Regel zum Initialisieren von Membervariablen verwendet.
GetInitializer - GetInitializerwird jedoch nur einmal aufgerufen, wenn eine SOAP-Anforderung zum ersten Mal an eine XML-Webdienstmethode gestellt wird. Wenn ein benutzerdefiniertes Attribut auf die 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 von einer von SoapExtensionAttributeabgeleiteten Klasse übergeben werden. Der Rückgabewert wird von ASP.NET zwischengespeichert und an nachfolgende Initialize Methoden übergeben. Daher wird die in GetInitializer durchgeführte Initialisierung im Wesentlichen in einen einmaligen Leistungstreffer gekapselt.
Initialize - Initialize wird jedes Mal aufgerufen, wenn eine SOAP-Anforderung an eine XML-Webdienstmethode gestellt wird, hat jedoch einen Vorteil gegenüber dem Klassenkonstruktor, da das Object initialisierte in GetInitializer an ihn übergeben wird.
Weitere Informationen
Gilt für:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für