Aracılığıyla paylaş


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 tek seferlik 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 bir kerelik performans maliyetiyle XML Web hizmeti uygulayan bir sınıfa özgü verileri 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 bir kerelik performans maliyetiyle XML Web hizmeti uygulayan bir sınıfa özgü verileri 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.

Örnekler

Aşağıdaki kod, SOAP uzantısına özgü verileri XML Web hizmeti temelinde nasıl kaydedebileceğini gösterir. SOAP uzantısı ö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 hizmeti yöntemine gönderilen ve bu yöntemden gönderilen SOAP iletilerinin önbelleğe XML Web hizmetini uygulayan sınıfın adına göre günlüğe kaydedildiği bir dosyanın adını kaydeder. Bu kod örneği, sınıfa genel bakış bölümünde bulunabilen 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

bunun ASP.NET tarafından çağrılan aşırı yüklemesi GetInitializer , 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 bir Typeiçinde geçen aşı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.

Ö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 GetInitializernasıl önbelleğe 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 eden Typeaşı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 - Sınıf oluşturucu, BIR SOAP uzantısının örneği her başlatıldığında ç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, GetInitializer yöntemi çağrılır. Bu, SOAP uzantısının prototip bilgileri için bir 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öntemlere geçirilir. Bu nedenle, içinde GetInitializer yapılan başlatma temelde tek seferlik bir performans isabeti olarak kapsüllenir.

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

Ayrıca bkz.

Şunlara uygulanır