Partager via


SoapExtension.GetInitializer Méthode

Définition

En cas de substitution dans une classe dérivée, permet à une extension SOAP d'initialiser des données spécifiques à une méthode de service Web XML sans incidence sur les performances.

Surcharges

GetInitializer(Type)

En cas de substitution dans une classe dérivée, permet à une extension SOAP d'initialiser des données spécifiques à une classe implémentant un service Web XML sans incidence sur les performances.

GetInitializer(LogicalMethodInfo, SoapExtensionAttribute)

En cas de substitution dans une classe dérivée, permet à une extension SOAP d'initialiser des données spécifiques à une méthode de service Web XML en appliquant un attribut à la méthode sans incidence sur les performances.

GetInitializer(Type)

En cas de substitution dans une classe dérivée, permet à une extension SOAP d'initialiser des données spécifiques à une classe implémentant un service Web XML sans incidence sur les performances.

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

Paramètres

serviceType
Type

Type de la classe d'implémentation du service Web XML auquel s'applique l'extension SOAP.

Retours

Object que l'extension SOAP initialise pour la mise en cache.

Exemples

Le code suivant montre comment enregistrer des données spécifiques à l’extension SOAP sur une base par service Web XML. Si l’extension SOAP est configurée à l’aide d’un fichier de configuration au lieu d’un attribut, l’extension SOAP peut stocker des données pour chaque classe à laquelle l’extension SOAP est appliquée. Cet exemple enregistre le nom d’un fichier dans lequel journaliser les messages SOAP envoyés à et à partir de la méthode de service Web XML en fonction du nom de la classe qui implémente le service Web XML dans le cache. Cet exemple de code fait partie d’un exemple de code complet pour une extension SOAP TraceExtension qui se trouve dans la vue d’ensemble de la SoapExtension classe.

   // 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

Remarques

La surcharge de qui est appelée par ASP.NET dépend de GetInitializer la façon dont l’extension SOAP a été spécifiée. Il existe deux méthodes pour spécifier une extension SOAP :

  • Appliquez un attribut personnalisé, dérivé de SoapExtensionAttribute, à la méthode de service Web XML individuelle.

  • Ajoutez une référence dans les fichiers de configuration web.config ou app.config.

Si vous ajoutez une référence à l’un des fichiers de configuration, l’extension SOAP s’exécute pour tous les services Web XML dans l’étendue de ce fichier de configuration. Lors de la spécification, une extension SOAP en référençant un fichier de configuration, ASP.NET appelle la GetInitializer surcharge qui passe dans un Type. Lorsque vous spécifiez une extension en appliquant un attribut personnalisé, ASP.NET appelle le GetInitializer qui passe un LogicalMethodInfo et un SoapExtensionAttribute.

Pour plus d’informations sur l’ajout d’extensions SOAP à un fichier de configuration, consultez Options de configuration pour les services Web XML créés à l’aide de ASP.NET.

S’applique à

GetInitializer(LogicalMethodInfo, SoapExtensionAttribute)

En cas de substitution dans une classe dérivée, permet à une extension SOAP d'initialiser des données spécifiques à une méthode de service Web XML en appliquant un attribut à la méthode sans incidence sur les performances.

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

Paramètres

methodInfo
LogicalMethodInfo

LogicalMethodInfo représentant le prototype de fonction spécifique de la méthode de service Web XML à laquelle s'applique l'extension SOAP.

attribute
SoapExtensionAttribute

SoapExtensionAttribute appliqué à la méthode de service Web XML.

Retours

Object que l'extension SOAP initialise pour la mise en cache.

Exemples

Le code suivant montre comment obtenir des données spécifiques à l’extension SOAP transmises à l’aide d’une classe qui dérive de SoapExtensionAttribute, puis mettre en cache ces données dans GetInitializer. Cet exemple de code fait partie d’un exemple de code complet pour une TraceExtension extension SOAP qui se trouve dans la vue d’ensemble de la SoapExtension classe. Cet exemple de code s’appuie sur un TraceExtensionAttribute être passé dans le attribute paramètre. Dans l’exemple de code complet, TraceExtensionAttribute dérive et SoapExtensionAttribute ajoute une Filename propriété, qui est celle qui GetInitializer est stockées dans le cache.

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

Remarques

Si l’extension SOAP est configurée à l’aide d’un fichier de configuration, consultez la GetInitializer surcharge qui accepte un Type.

Une extension SOAP a trois possibilités d’initialiser des données et elles ont toutes des objectifs différents :

  • Constructeur de classe : le constructeur de classe est appelé chaque fois qu’une extension SOAP est instanciée et est généralement utilisé pour initialiser des variables membres.

  • GetInitializer - GetInitializer, cependant, est appelé une seule fois, la première fois qu’une requête SOAP est adressée à une méthode de services Web XML. Si un attribut personnalisé est appliqué à la méthode de service Web XML, la GetInitializer méthode est appelée. Cela permet à l’extension SOAP d’interroger le LogicalMethodInfo d’une méthode de service Web XML pour obtenir des informations de prototype ou d’accéder aux données spécifiques à l’extension transmises par une classe dérivant de SoapExtensionAttribute. La valeur de retour est mise en cache par ASP.NET et transmise aux méthodes suivantes Initialize . Par conséquent, l’initialisation effectuée dans GetInitializer est essentiellement encapsulée dans une performance unique.

  • Initialize - Initialize est appelé chaque fois qu’une requête SOAP est envoyée à une méthode de service Web XML, mais présente un avantage par rapport au constructeur de classe, en ce que l’initialisé Object dans GetInitializer lui est passé.

Voir aussi

S’applique à