次の方法で共有


WebService クラス

共通 ASP.NET オブジェクト (アプリケーションやセッション状態など) への直接アクセスを提供する、XML Web サービス用のオプションの基本クラスを定義します。

この型のすべてのメンバの一覧については、WebService メンバ を参照してください。

System.Object
   System.ComponentModel.MarshalByValueComponent
      System.Web.Services.WebService

Public Class WebService
   Inherits MarshalByValueComponent
[C#]
public class WebService : MarshalByValueComponent
[C++]
public __gc class WebService : public MarshalByValueComponent
[JScript]
public class WebService extends MarshalByValueComponent

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

共通 ASP.NET オブジェクトにアクセスする必要がない場合は、 WebService から派生させずに XML Web サービスを作成できます。追加の ASP.NET オブジェクトには、 Context を使用してアクセスできます。

SoapRpcMethodAttribute または SoapDocumentMethodAttributeOneWay プロパティが true に設定されている XML Web サービス メソッドは、その HttpContext へのアクセス権がありません。そのため、該当の XML Web サービス メソッド内から WebService クラスのどのプロパティにアクセスしても null 参照 (Visual Basic では Nothing) が返されます。

使用している .NET Framework Version 1.0 XML Web サービスのメソッドに SoapRpcMethodAttribute 属性または SoapDocumentMethodAttribute 属性が適用されており、 OneWay プロパティが true に設定されている場合は、静的な Current プロパティを使用して HttpContext にアクセスしないでください。 HttpContext にアクセスするには、XML Web サービスのメソッドを実装するクラスを WebService から派生し、 Context プロパティにアクセスします。

使用例

[Visual Basic, C#] Context プロパティを使用して、サーバーでの要求時刻を取得するために、 WebService から派生して XML Web サービスを作成する例を次に示します。

 
<%@ WebService Language="VB" Class="Util" %>
 
Imports System
Imports System.Web.Services

Public Class Util
    Inherits WebService
    
    <WebMethod(Description := "Returns the time as stored on the Server", _
        EnableSession := False)> _
    Public Function Time() As String
        
        Return Context.Timestamp.TimeOfDay.ToString()
    End Function
End Class
 

[C#] 
<%@ WebService Language="C#" Class="Util" %>
 
 using System;
 using System.Web.Services;
 
 public class Util: WebService {
   [ WebMethod(Description="Returns the time as stored on the Server",
   EnableSession=false)]
   public string Time() {
      return Context.Timestamp.TimeOfDay.ToString();
   }
 }
 

[C++, JScript] C++ および JScript のサンプルはありません。Visual Basic および C# のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Web.Services

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: System.Web.Services (System.Web.Services.dll 内)

参照

WebService メンバ | System.Web.Services 名前空間