SoapExtension.GetInitializer Yöntem

Tanım

Türetilmiş bir sınıfta geçersiz kılındığında, SOAP uzantısının xml web hizmeti yöntemine özgü verileri bir kerelik performans maliyetiyle başlatmasına izin verir.

Aşırı Yüklemeler

Name Description
GetInitializer(Type)

Türetilmiş bir sınıfta geçersiz kılındığında, SOAP uzantısının xml Web hizmeti uygulayan bir sınıfa özgü verileri bir kerelik performans maliyetiyle başlatmasına izin verir.

GetInitializer(LogicalMethodInfo, SoapExtensionAttribute)

Türetilmiş bir sınıfta geçersiz kılındığında, SOAP uzantısının XML Web hizmeti yöntemine bir kerelik performans maliyetiyle uygulanan bir özniteliği kullanarak XML Web hizmeti yöntemine özgü verileri başlatmasına izin verir.

GetInitializer(Type)

Türetilmiş bir sınıfta geçersiz kılındığında, SOAP uzantısının xml Web hizmeti uygulayan bir sınıfa özgü verileri bir kerelik performans maliyetiyle başlatmasına izin verir.

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

Parametreler

serviceType
Type

SOAP uzantısının uygulandığı XML Web hizmetini uygulayan sınıfın türü.

Döndürülenler

Object SOAP uzantısının önbelleğe almak için başlatmış olduğu uzantı.

Örnekler

Aşağıdaki kod, SOAP uzantısına özgü verilerin XML Web hizmeti temelinde nasıl kaydedilebileceğini gösterir. SOAP uzantısı öznitelik yerine bir yapılandırma dosyası kullanılarak yapılandırılırsa, SOAP uzantısı SOAP uzantısının uygulandığı her sınıf için verileri depolayabilir. Bu örnek, XML Web hizmetini uygulayan sınıfın adına bağlı olarak XML Web hizmeti yöntemine gönderilen ve bu yöntemden gönderilen SOAP iletilerinin günlüğe kaydedildiği dosyanın adını önbelleğe kaydeder. Bu kod örneği, sınıfa genel bakış bölümünde bulunabilecek bir TraceExtension SOAP uzantısı için tam kod örneğinin SoapExtension bir parçasıdır.

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

Açıklamalar

ASP.NET tarafından çağrılan GetInitializer aşırı yüklemesi, SOAP uzantısının nasıl belirtildiğine bağlıdır. SOAP uzantısını belirtmek için iki yöntem vardır:

  • tek tek XML Web hizmeti yöntemine öğesinden SoapExtensionAttributetüretilen özel bir öznitelik uygulayın.

  • web.config veya app.config yapılandırma dosyalarına başvuru ekleyin.

Yapılandırma dosyalarından birine başvuru eklerseniz, SOAP uzantısı bu yapılandırma dosyası kapsamındaki tüm XML Web hizmetleri için çalışır. Belirtirken, yapılandırma dosyasına başvurarak bir SOAP uzantısı ASP.NET GetInitializer geçen Type aşırı yüklemesini çağırır. Özel bir öznitelik uygulayarak uzantı belirtirken, ASP.NET bir GetInitializer ve LogicalMethodInfo ileten SoapExtensionAttribute çağırır.

Yapılandırma dosyasına SOAP uzantıları ekleme hakkında ayrıntılı bilgi için bkz. configuration Options for XML Web Services Created Using ASP.NET.

Şunlara uygulanır

GetInitializer(LogicalMethodInfo, SoapExtensionAttribute)

Türetilmiş bir sınıfta geçersiz kılındığında, SOAP uzantısının XML Web hizmeti yöntemine bir kerelik performans maliyetiyle uygulanan bir özniteliği kullanarak XML Web hizmeti yöntemine özgü verileri başlatmasına izin verir.

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

Parametreler

methodInfo
LogicalMethodInfo

LogicalMethodInfo SOAP uzantısının uygulandığı XML Web hizmeti yöntemi için belirli işlev prototipini temsil eden.

attribute
SoapExtensionAttribute

SoapExtensionAttribute XML Web hizmeti yöntemine uygulanır.

Döndürülenler

Object SOAP uzantısının önbelleğe almak için başlatmış olduğu uzantı.

Örnekler

Aşağıdaki kod, öğesinden SoapExtensionAttributetüretilen bir sınıf kullanarak geçirilen SOAP uzantısına özgü verileri nasıl edinebileceğinizi ve ardından bu verileri içinde GetInitializerönbelleğe nasıl alabileceğinizi gösterir. Bu kod örneği, sınıfa genel bakış bölümünde bulunabilen bir TraceExtension SOAP uzantısının tam kod örneğinin SoapExtension bir parçasıdır. Bu kod örneği, parametresine geçirilen bir TraceExtensionAttribute değere attribute dayanır. Tam kod örneğinde, TraceExtensionAttribute türetilir SoapExtensionAttribute ve önbellekte depolanan Filename bir GetInitializer özellik ekler.

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

Açıklamalar

SOAP uzantısı bir yapılandırma dosyası kullanılarak yapılandırıldıysa, kabul GetInitializereden aşırı yüklemeye bakınType.

SOAP uzantısının verileri başlatmak için üç fırsatı vardır ve hepsinin farklı amaçları vardır:

  • Sınıf oluşturucu - Bir SOAP uzantısı her başlatıldığında sınıf oluşturucu çağrılır ve genellikle üye değişkenlerini başlatmak için kullanılır.

  • GetInitializer - GetInitializerancak, bir XML Web hizmetleri yöntemine ilk kez SOAP isteği yapıldığında yalnızca bir kez çağrılır. XML Web hizmeti yöntemine özel bir öznitelik uygulanırsa yöntemi GetInitializer çağrılır. Bu, SOAP uzantısının prototip bilgileri için XML Web hizmeti yöntemini sorgulamasına LogicalMethodInfo veya öğesinden SoapExtensionAttributetüretilen bir sınıf tarafından geçirilen uzantıya özgü verilere erişmesine olanak tanır. Dönüş değeri ASP.NET tarafından önbelleğe alınır ve sonraki Initialize yöntemlerine geçirilir. Bu nedenle, içinde GetInitializer yapılan başlatma temelde tek seferlik bir performans isabetine kapsüllenir.

  • Initialize - Initialize, bir XML Web hizmeti yöntemine soap isteği her yapıldığında çağrılır, ancak içinde başlatılan Object öğesinin bu yönteme geçirilmesinde sınıf oluşturucusunun GetInitializer avantajına sahiptir.

Ayrıca bkz.

Şunlara uygulanır