SoapExtension.GetInitializer Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Cuando se reemplaza en una clase derivada, permite que una extensión SOAP inicialice los datos específicos de un método de servicios Web XML con un solo costo de rendimiento.
Sobrecargas
GetInitializer(Type) |
Cuando se reemplaza en una clase derivada, permite que una extensión SOAP inicialice los datos específicos de una clase que implementa un servicio Web XML con un solo costo de rendimiento. |
GetInitializer(LogicalMethodInfo, SoapExtensionAttribute) |
Cuando se reemplaza en una clase derivada, permite que una extensión SOAP inicialice los datos específicos de un método de servicios Web XML utilizando un atributo que se aplica al método de servicios Web XML con un solo costo de rendimiento. |
GetInitializer(Type)
Cuando se reemplaza en una clase derivada, permite que una extensión SOAP inicialice los datos específicos de una clase que implementa un servicio Web XML con un solo costo de rendimiento.
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
Parámetros
- serviceType
- Type
Tipo de la clase que implementa el servicio Web XML al que se aplica la extensión SOAP.
Devoluciones
Object que la extensión SOAP inicializa para el almacenamiento en caché.
Ejemplos
En el código siguiente se muestra cómo se pueden guardar datos específicos de la extensión SOAP por cada servicio web XML. Si la extensión SOAP se configura mediante un archivo de configuración en lugar de un atributo, la extensión SOAP puede almacenar datos para cada clase a la que se aplica la extensión SOAP. En este ejemplo se guarda el nombre de un archivo en el que se registran los mensajes SOAP enviados a y desde el método de servicio web XML en función del nombre de la clase que implementa el servicio web XML en la memoria caché. Este ejemplo de código forma parte de un ejemplo de código completo para una extensión SOAP TraceExtension que se puede encontrar en la información general de la SoapExtension clase.
// 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
Comentarios
La sobrecarga de GetInitializer a la que llama ASP.NET depende de cómo se especificó la extensión SOAP. Hay dos métodos para especificar una extensión SOAP:
Aplique un atributo personalizado, que deriva de SoapExtensionAttribute, al método de servicio web XML individual.
Agregue una referencia en los archivos de configuración web.config o app.config.
Si agrega una referencia a uno de los archivos de configuración, la extensión SOAP se ejecuta para todos los servicios web XML dentro del ámbito de ese archivo de configuración. Al especificar, una extensión SOAP haciendo referencia a un archivo de configuración, ASP.NET invoca la GetInitializer sobrecarga que pasa en .Type Al especificar una extensión mediante la aplicación de un atributo personalizado, ASP.NET invoca el GetInitializer objeto que pasa LogicalMethodInfo a y .SoapExtensionAttribute
Para obtener más información sobre cómo agregar extensiones SOAP a un archivo de configuración, vea Opciones de configuración para servicios web XML creados con ASP.NET.
Se aplica a
GetInitializer(LogicalMethodInfo, SoapExtensionAttribute)
Cuando se reemplaza en una clase derivada, permite que una extensión SOAP inicialice los datos específicos de un método de servicios Web XML utilizando un atributo que se aplica al método de servicios Web XML con un solo costo de rendimiento.
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
Parámetros
- methodInfo
- LogicalMethodInfo
LogicalMethodInfo que representa el prototipo de función específico del método de servicios Web XML al que se aplica la extensión SOAP.
- attribute
- SoapExtensionAttribute
SoapExtensionAttribute que se aplica al método de servicios Web XML.
Devoluciones
Object que la extensión SOAP inicializa para el almacenamiento en caché.
Ejemplos
En el código siguiente se muestra cómo se pueden obtener datos específicos de la extensión SOAP pasados mediante una clase que deriva de SoapExtensionAttributey, a continuación, almacenar en caché esos datos en GetInitializer. Este ejemplo de código forma parte de un ejemplo de código completo para una TraceExtension
extensión SOAP que se puede encontrar en la información general de la SoapExtension clase. Este ejemplo de código se basa en un TraceExtensionAttribute
objeto que se pasa al attribute
parámetro . En el ejemplo de código completo, TraceExtensionAttribute
deriva de SoapExtensionAttribute y agrega una Filename
propiedad , que es lo que GetInitializer almacena en la memoria caché.
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
Comentarios
Si la extensión SOAP está configurada mediante un archivo de configuración, vea la GetInitializer sobrecarga que acepta .Type
Una extensión SOAP tiene tres oportunidades para inicializar datos y todas tienen diferentes propósitos:
Constructor de clase: se llama al constructor de clase cada vez que se crea una instancia de una extensión SOAP y se usa normalmente para inicializar variables miembro.
GetInitializer - GetInitializerSin embargo, se llama a solo una vez, la primera vez que se realiza una solicitud SOAP a un método de servicios web XML. Si se aplica un atributo personalizado al método de servicio web XML, se invoca el GetInitializer método . Esto permite a la extensión SOAP interrogar el LogicalMethodInfo de un método de servicio web XML para obtener información de prototipo o tener acceso a datos específicos de la extensión pasados por una clase derivada de SoapExtensionAttribute. El valor devuelto se almacena en caché mediante ASP.NET y se pasa a métodos posteriores Initialize . Por lo tanto, la inicialización realizada en GetInitializer se encapsula esencialmente en un acierto de rendimiento único.
Initialize - Initialize se llama cada vez que se realiza una solicitud SOAP a un método de servicio web XML, pero tiene una ventaja sobre el constructor de clase, en que el Object inicializado en GetInitializer se pasa a él.