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

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 kodda, XML Web hizmeti temelinde SOAP uzantısına özgü verilerin nasıl kaydedilebileceği gösterilmektedir. SOAP uzantısı bir öznitelik yerine 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 göre XML Web hizmeti yöntemine gönderilen ve bu yöntemden gönderilen SOAP iletilerinin günlüğe kaydedildiği bir dosyanın adını önbelleğe kaydeder. Bu kod örneği, sınıfa genel bakış bölümünde bulunabilen TraceExtension SOAP uzantısının 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

bunun aşırı yüklemesi GetInitializer ASP.NET tarafından çağrılır, SOAP uzantısının nasıl belirtildiğine bağlıdır. SOAP uzantısı 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 içinde geçen Typeaşırı yüklemeyi çağırırGetInitializer. Özel bir öznitelik uygulayarak bir uzantı belirtirken, ASP.NET ve SoapExtensionAttributeiçinde LogicalMethodInfo geçen öğesini çağırırGetInitializer.

Yapılandırma dosyasına SOAP uzantıları ekleme hakkında ayrıntılı bilgi için bkz. ASP.NET Kullanılarak Oluşturulan XML Web Hizmetleri için Yapılandırma Seçenekleri.

Ş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ı için 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 önbellekte depolayan GetInitializer bir Filename özelliği türetilir SoapExtensionAttribute ve 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 Typeeden aşırı yüklemeye bakınGetInitializer.

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ının örneği 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 bir XML Web hizmeti yöntemini sorgulamasını LogicalMethodInfo veya öğesinden SoapExtensionAttributetüretilen bir sınıf tarafından geçirilen uzantıya özgü verilere erişmesini sağlar. Dönüş değeri ASP.NET tarafından önbelleğe alınır ve sonraki Initialize yöntemlere geçirilir. Bu nedenle, içinde GetInitializer yapılan başlatma temelde tek seferlik bir performans isabetine kapsüllenir.

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

Ayrıca bkz.

Şunlara uygulanır