SoapExtension.Initialize(Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
派生クラスでオーバーライドされると、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
ASP.NET によってキャッシュされた GetInitializer(LogicalMethodInfo, SoapExtensionAttribute) から返されるObject。
例
次の例では、 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 拡張機能には、データを初期化する 3 つの機会があり、それらはすべて異なる目的を持っています。
クラス コンストラクター - クラス コンストラクターは、SOAP 拡張機能がインスタンス化されるたびに呼び出され、通常はメンバー変数の初期化に使用されます。
GetInitializer - このメソッドは、XML Web サービス メソッドに対して初めて SOAP 要求を行う場合に 1 回だけ呼び出されます。 カスタム属性が XML Web サービス メソッドに適用されている場合は、 GetInitializer メソッドが呼び出されます。 これにより、SOAP 拡張機能は、プロトタイプ情報の XML Web サービス メソッドの LogicalMethodInfo を問い合わせ、または SoapExtensionAttributeから派生するクラスによって渡される拡張機能固有のデータにアクセスできます。 戻り値は ASP.NET によってキャッシュされ、後続の Initialize メソッドに渡されます。 したがって、 GetInitializer で行われる初期化は、基本的に 1 回限りのパフォーマンス ヒットにカプセル化されます。
Initialize- このメソッドは、XML Web サービス メソッドに SOAP 要求が行われるたびに呼び出されますが、GetInitializerで初期化されたObjectが渡されるという点で、クラス コンストラクターよりも利点があります。
Note
構成ファイルで <soapExtensionTypes> 要素を使用して、SoapExtensionAttributeから派生せずに SOAP 拡張機能を追加することもできます。 詳細については、「 <soapExtensionTypes> SOAP拡張機能を使用した要素と SOAP メッセージの変更」を参照してください。