Udostępnij za pośrednictwem


SoapExtension.GetInitializer Metoda

Definicja

W przypadku przesłonięcia w klasie pochodnej umożliwia rozszerzenie SOAP inicjowanie danych specyficznych dla metody usługi sieci Web XML przy jednorazowym koszcie wydajności.

Przeciążenia

GetInitializer(Type)

W przypadku zastąpienia w klasie pochodnej umożliwia rozszerzenie PROTOKOŁU SOAP inicjowanie danych specyficznych dla klasy implementowania usługi sieci Web XML przy jednorazowym koszcie wydajności.

GetInitializer(LogicalMethodInfo, SoapExtensionAttribute)

W przypadku zastąpienia w klasie pochodnej umożliwia rozszerzenie PROTOKOŁU SOAP inicjowanie danych specyficznych dla metody usługi sieci Web XML przy użyciu atrybutu zastosowanego do metody usługi sieci Web XML w jednym momencie kosztu wydajności.

GetInitializer(Type)

W przypadku zastąpienia w klasie pochodnej umożliwia rozszerzenie PROTOKOŁU SOAP inicjowanie danych specyficznych dla klasy implementowania usługi sieci Web XML przy jednorazowym koszcie wydajności.

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

Parametry

serviceType
Type

Typ klasy implementującą usługę sieci Web XML, do której zastosowano rozszerzenie SOAP.

Zwraca

Rozszerzenie Object SOAP inicjuje buforowanie.

Przykłady

Poniższy kod pokazuje, jak można zapisać dane specyficzne dla rozszerzenia SOAP na podstawie usługi sieci Web XML. Jeśli rozszerzenie SOAP jest skonfigurowane przy użyciu pliku konfiguracji zamiast atrybutu, rozszerzenie SOAP może przechowywać dane dla każdej klasy, do której zastosowano rozszerzenie SOAP. W tym przykładzie zapisano nazwę pliku, w którym mają być rejestrowane komunikaty PROTOKOŁU SOAP wysyłane do i z metody usługi sieci Web XML na podstawie nazwy klasy implementowania usługi sieci Web XML w pamięci podręcznej. Ten przykład kodu jest częścią pełnego przykładu kodu rozszerzenia TraceExtension SOAP, które można znaleźć w przeglądzie SoapExtension klasy.

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

Uwagi

Przeciążenie GetInitializer , które jest wywoływane przez ASP.NET zależy od sposobu określenia rozszerzenia SOAP. Istnieją dwie metody określania rozszerzenia SOAP:

  • Zastosuj atrybut niestandardowy, pochodzący z SoapExtensionAttributeklasy , do pojedynczej metody usługi sieci Web XML.

  • Dodaj odwołanie w plikach konfiguracji web.config lub app.config.

Jeśli dodasz odwołanie do jednego z plików konfiguracji, rozszerzenie SOAP zostanie uruchomione dla wszystkich usług sieci Web XML w zakresie tego pliku konfiguracji. Podczas określania rozszerzenia PROTOKOŁU SOAP, odwołując się do pliku konfiguracji, ASP.NET wywołuje GetInitializer przeciążenie, które przechodzi w obiekcie Type. Podczas określania rozszerzenia przez zastosowanie atrybutu niestandardowego ASP.NET wywołuje element przekazujący GetInitializer element LogicalMethodInfo i .SoapExtensionAttribute

Aby uzyskać szczegółowe informacje na temat dodawania rozszerzeń PROTOKOŁU SOAP do pliku konfiguracji, zobacz Opcje konfiguracji dla usług sieci Web XML utworzonych przy użyciu ASP.NET.

Dotyczy

GetInitializer(LogicalMethodInfo, SoapExtensionAttribute)

W przypadku zastąpienia w klasie pochodnej umożliwia rozszerzenie PROTOKOŁU SOAP inicjowanie danych specyficznych dla metody usługi sieci Web XML przy użyciu atrybutu zastosowanego do metody usługi sieci Web XML w jednym momencie kosztu wydajności.

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

Parametry

methodInfo
LogicalMethodInfo

Reprezentujący LogicalMethodInfo konkretny prototyp funkcji dla metody usługi sieci Web XML, do której zastosowano rozszerzenie SOAP.

attribute
SoapExtensionAttribute

Zastosowano SoapExtensionAttribute metodę usługi sieci Web XML.

Zwraca

Rozszerzenie Object SOAP inicjuje buforowanie.

Przykłady

Poniższy kod pokazuje, jak uzyskać dane specyficzne dla rozszerzenia SOAP przekazywane przy użyciu klasy pochodzącej z SoapExtensionAttributeklasy , a następnie buforować te dane w GetInitializerprogramie . Ten przykład kodu jest częścią pełnego przykładu kodu TraceExtension rozszerzenia SOAP, które można znaleźć w przeglądzie SoapExtension klasy. Ten przykład kodu opiera się na TraceExtensionAttribute przekazywaniu do parametru attribute . W pełnym przykładzie TraceExtensionAttribute kodu pochodzi z SoapExtensionAttribute i dodaje Filename właściwość, która jest przechowywana GetInitializer w pamięci podręcznej.

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

Uwagi

Jeśli rozszerzenie SOAP jest skonfigurowane przy użyciu pliku konfiguracji, zobacz GetInitializer przeciążenie, które akceptuje Type.

Rozszerzenie SOAP ma trzy możliwości inicjowania danych i wszystkie mają różne cele:

  • Konstruktor klasy — konstruktor klasy jest wywoływany za każdym razem, gdy rozszerzenie SOAP jest tworzone i jest zwykle używane do inicjowania zmiennych składowych.

  • GetInitializer - GetInitializer, jednak jest wywoływany tylko raz, po raz pierwszy żądanie SOAP jest wykonywane do metody usług sieci Web XML. Jeśli atrybut niestandardowy jest stosowany do metody usługi sieci Web XML, GetInitializer metoda jest wywoływana. Dzięki temu rozszerzenie SOAP umożliwia przesłuchiwane LogicalMethodInfo metody usługi sieci Web XML na potrzeby prototypowych informacji lub uzyskiwania dostępu do danych specyficznych dla rozszerzenia przekazywanych przez klasę pochodzącą z SoapExtensionAttributeklasy . Wartość zwracana jest buforowana przez ASP.NET i przekazywana do kolejnych Initialize metod. W związku z tym inicjowanie wykonywane w pliku GetInitializer jest hermetyzowane zasadniczo w jednorazowym trafieniu wydajności.

  • Initialize - Initialize jest wywoływana za każdym razem, gdy żądanie PROTOKOŁU SOAP jest wykonywane do metody usługi sieci Web XML, ale ma przewagę nad konstruktorem klasy, w tym, że Object zainicjowany element jest GetInitializer przekazywany do niego.

Zobacz też

Dotyczy