SoapExtension.Initialize(Object) 方法

定义

当在派生类中被重写时,允许 SOAP 扩展使用缓存于 GetInitializer(LogicalMethodInfo, SoapExtensionAttribute) 方法中的数据初始化其自身。

public:
 abstract void Initialize(System::Object ^ initializer);
public abstract void Initialize (object initializer);
abstract member Initialize : obj -> unit
Public MustOverride Sub Initialize (initializer As Object)

参数

initializer
Object

Object 从 ASP.NET 缓存的 GetInitializer(LogicalMethodInfo, SoapExtensionAttribute) 中返回。

示例

以下示例演示如何使用 方法期间 GetInitializer 缓存的数据。

   // Receive the file name stored by GetInitializer and store it in
   // a member variable for this specific instance.
public:
   virtual void Initialize( Object^ initializer ) override
   {
      filename = dynamic_cast<String^>(initializer);
   }
// Receive the file name stored by GetInitializer and store it in
// a member variable for this specific instance.
public override void Initialize(object initializer) {
    filename = (string) initializer;
}
' Receive the file name stored by GetInitializer and store it in a 
' member variable for this specific instance.
Public Overrides Sub Initialize(initializer As Object)
    m_filename = CStr(initializer)
End Sub

注解

SOAP 扩展有三个初始化数据的机会,它们都有不同的用途:

  • 类构造函数 - 每次实例化 SOAP 扩展时都会调用类构造函数,并且通常用于初始化成员变量。

  • GetInitializer - 此方法在首次向 XML Web 服务方法发出 SOAP 请求时只调用一次。 如果自定义属性应用于 XML Web 服务方法,则 GetInitializer 调用 方法。 这允许 SOAP 扩展查询 LogicalMethodInfo XML Web 服务方法的 ,以获取原型信息,或访问派生自 SoapExtensionAttribute的类传递的特定于扩展的数据。 返回值由 ASP.NET 缓存,并传递到后续 Initialize 方法中。 因此,在 中 GetInitializer 完成的初始化基本上封装到一次性性能影响中。

  • Initialize - 每次向 XML Web 服务方法发出 SOAP 请求时,都会调用此方法,但与类构造函数相较,因为它 Object 将初始化 GetInitializer 的 传递给它。

注意

还可以通过在配置文件中使用 <soapExtensionTypes> 元素来添加 SOAP 扩展,而无需从SoapExtensionAttribute派生。 有关详细信息,请参阅 <soapExtensionTypes> 元素 和使用 SOAP 扩展修改 SOAP 消息

适用于