SoapExtension.GetInitializer Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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é.