Bagikan melalui


SoapExtension.GetInitializer Metode

Definisi

Ketika ditimpa di kelas turunan, memungkinkan ekstensi SOAP untuk menginisialisasi data khusus untuk metode layanan Web XML dengan biaya performa satu kali.

Overload

GetInitializer(Type)

Ketika ditimpa di kelas turunan, memungkinkan ekstensi SOAP untuk menginisialisasi data khusus untuk kelas yang menerapkan layanan Web XML dengan biaya performa satu kali.

GetInitializer(LogicalMethodInfo, SoapExtensionAttribute)

Ketika ditimpa di kelas turunan, memungkinkan ekstensi SOAP untuk menginisialisasi data khusus untuk metode layanan Web XML menggunakan atribut yang diterapkan ke metode layanan Web XML dengan biaya performa satu kali.

GetInitializer(Type)

Ketika ditimpa di kelas turunan, memungkinkan ekstensi SOAP untuk menginisialisasi data khusus untuk kelas yang menerapkan layanan Web XML dengan biaya performa satu kali.

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

Jenis kelas yang mengimplementasikan layanan Web XML tempat ekstensi SOAP diterapkan.

Mengembalikan

ekstensi Object SOAP yang diinisialisasi untuk penembolokan.

Contoh

Kode berikut menunjukkan bagaimana seseorang dapat menyimpan data spesifik ekstensi SOAP berdasarkan layanan Web per XML. Jika ekstensi SOAP dikonfigurasi menggunakan file konfigurasi alih-alih atribut, ekstensi SOAP dapat menyimpan data untuk setiap kelas tempat ekstensi SOAP diterapkan. Contoh ini menyimpan nama file untuk mencatat pesan SOAP yang dikirim ke dan dari metode layanan Web XML berdasarkan nama kelas yang mengimplementasikan layanan Web XML ke dalam cache. Contoh kode ini adalah bagian dari contoh kode lengkap untuk ekstensi SOAP TraceExtension yang dapat ditemukan di SoapExtension gambaran umum kelas.

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

Keterangan

Kelebihan yang GetInitializer dipanggil oleh ASP.NET tergantung pada bagaimana ekstensi SOAP ditentukan. Ada dua metode untuk menentukan ekstensi SOAP:

  • Terapkan atribut kustom, berasal dari SoapExtensionAttribute, ke metode layanan Web XML individual.

  • Tambahkan referensi di file konfigurasi web.config atau app.config.

Jika Anda menambahkan referensi ke salah satu file konfigurasi, ekstensi SOAP berjalan untuk semua layanan Web XML dalam cakupan file konfigurasi tersebut. Saat menentukan, ekstensi SOAP dengan mereferensikan file konfigurasi, ASP.NET memanggil GetInitializer kelebihan beban yang melewati .Type Saat menentukan ekstensi dengan menerapkan atribut kustom, ASP.NET memanggil yang lolos GetInitializer dalam LogicalMethodInfo dan SoapExtensionAttribute.

Untuk detail tentang menambahkan ekstensi SOAP ke file konfigurasi, lihat Opsi Konfigurasi untuk Layanan Web XML yang Dibuat Menggunakan ASP.NET.

Berlaku untuk

GetInitializer(LogicalMethodInfo, SoapExtensionAttribute)

Ketika ditimpa di kelas turunan, memungkinkan ekstensi SOAP untuk menginisialisasi data khusus untuk metode layanan Web XML menggunakan atribut yang diterapkan ke metode layanan Web XML dengan biaya performa satu kali.

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

yang LogicalMethodInfo mewakili prototipe fungsi tertentu untuk metode layanan Web XML tempat ekstensi SOAP diterapkan.

attribute
SoapExtensionAttribute

Diterapkan SoapExtensionAttribute ke metode layanan Web XML.

Mengembalikan

ekstensi Object SOAP yang diinisialisasi untuk penembolokan.

Contoh

Kode berikut menunjukkan bagaimana Anda dapat memperoleh data khusus ekstensi SOAP yang diteruskan menggunakan kelas yang berasal dari SoapExtensionAttribute, lalu cache data tersebut di GetInitializer. Contoh kode ini adalah bagian dari contoh kode lengkap untuk TraceExtension ekstensi SOAP yang dapat ditemukan di SoapExtension gambaran umum kelas. Contoh kode ini bergantung pada yang TraceExtensionAttribute diteruskan ke attribute parameter . Dalam contoh kode lengkap, TraceExtensionAttribute berasal dari SoapExtensionAttribute dan menambahkan Filename properti , yang merupakan apa yang GetInitializer disimpan dalam 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

Keterangan

Jika ekstensi SOAP dikonfigurasi menggunakan file konfigurasi, lihat GetInitializer kelebihan beban yang menerima Type.

Ekstensi SOAP memiliki tiga peluang untuk menginisialisasi data dan semuanya memiliki tujuan yang berbeda:

  • Konstruktor kelas - Konstruktor kelas dipanggil setiap kali ekstensi SOAP dibuat dan biasanya digunakan untuk menginisialisasi variabel anggota.

  • GetInitializer - GetInitializer, namun, dipanggil hanya sekali, pertama kali permintaan SOAP dibuat ke metode layanan Web XML. Jika atribut kustom diterapkan ke metode layanan Web XML, GetInitializer metode dipanggil. Ini memungkinkan ekstensi SOAP untuk menginterogasi LogicalMethodInfo metode layanan Web XML untuk informasi prototipe atau untuk mengakses data khusus ekstensi yang diteruskan oleh kelas yang berasal dari SoapExtensionAttribute. Nilai yang dikembalikan di-cache oleh ASP.NET dan diteruskan ke metode berikutnya Initialize . Oleh karena itu, inisialisasi yang dilakukan di GetInitializer dienkapsulasi pada dasarnya menjadi hit performa satu kali.

  • Initialize - Initialize dipanggil setiap kali permintaan SOAP dibuat ke metode layanan Web XML, tetapi memiliki keuntungan atas konstruktor kelas, karena diinisialisasi Object diteruskan GetInitializer ke dalamnya.

Lihat juga

Berlaku untuk