SoapExtension.GetInitializer Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.