次の方法で共有


.NET Core 用 WCF dotnet-svcutil ツール

Windows Communication Foundation (WCF) dotnet-svcutil ツールは、ネットワーク上の Web サービスまたは WSDL ファイルからメタデータを取得し、Web サービス操作にアクセスするクライアント プロキシ メソッドを含む WCF クラスを生成する .NET ツールです。

.NET Framework プロジェクト用 のサービス モデル メタデータ - svcutil ツールと同様に、 dotnet-svcutil は、.NET Core および .NET Standard プロジェクトと互換性のある Web サービス参照を生成するためのコマンド ライン ツールです。

dotnet-svcutil ツールは、Visual Studio 2017 バージョン 15.5 に最初に付属していた WCF Web サービス 参照 Visual Studio 接続済みサービス プロバイダーの代替オプションです。 .NET ツールとしての dotnet-svcutil ツールは、Linux、macOS、および Windows でクロスプラットフォームで使用できます。

Von Bedeutung

信頼できるソースからのみサービスを参照する必要があります。 信頼されていないソースからの参照を追加すると、セキュリティが損なわれる可能性があります。

[前提条件]

  • .NET Core 2.1 SDK 以降のバージョン
  • お気に入りのコード エディター

作業の開始

次の例では、Web サービス参照を .NET Core Web プロジェクトに追加してサービスを呼び出すために必要な手順について説明します。 HelloSvcutil という名前の .NET Core Web アプリケーションを作成し、次のコントラクトを実装する Web サービスへの参照を追加します。

[ServiceContract]
public interface ISayHello
{
    [OperationContract]
    string Hello(string name);
}

この例では、Web サービスが次のアドレスでホストされると仮定します。 http://contoso.com/SayHello.svc

Windows、macOS、または Linux コマンド ウィンドウから、次の手順を実行します。

  1. 次の例のように、プロジェクトの HelloSvcutil という名前のディレクトリを作成し、それを現在のディレクトリにします。

    mkdir HelloSvcutil
    cd HelloSvcutil
    
  2. 次のように dotnet new コマンドを使用して、そのディレクトリに新しい C# Web プロジェクトを作成します。

    dotnet new web
    
  3. dotnet-svcutil NuGet パッケージを CLI ツールとしてインストールします。

    dotnet tool install --global dotnet-svcutil
    
  4. dotnet-svcutil コマンドを実行して、次のように Web サービス参照ファイルを生成します。

    dotnet-svcutil http://contoso.com/SayHello.svc
    

生成されたファイルは HelloSvcutil/ServiceReference/Reference.cs として保存されます。 dotnet-svcutil ツールは、プロキシ コードに必要な適切な WCF パッケージをパッケージ参照としてプロジェクトに追加します。

サービス リファレンスの使用

  1. 次のように、 dotnet restore コマンドを使用して WCF パッケージを復元します。

    dotnet restore
    
  2. 使用するクライアント クラスと操作の名前を見つけます。 Reference.cs には、 System.ServiceModel.ClientBaseから継承するクラスと、サービスの操作を呼び出すために使用できるメソッドが含まれます。 この例では、 SayHello サービスの Hello 操作を呼び出します。 ServiceReference.SayHelloClient はクライアント クラスの名前であり、操作の呼び出しに使用できる HelloAsync というメソッドがあります。

  3. エディターで Startup.cs ファイルを開き、サービス参照名前空間の using ディレクティブを上部に追加します。

    using ServiceReference;
    
  4. Configure メソッドを編集して Web サービスを呼び出します。 これを行うには、 ClientBase から継承するクラスのインスタンスを作成し、クライアント オブジェクトでメソッドを呼び出します。

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
    
        app.Run(async (context) =>
        {
            var client = new SayHelloClient();
            var response = await client.HelloAsync();
            await context.Response.WriteAsync(response);
        });
    }
    
    
  5. 次のように、 dotnet run コマンドを使用してアプリケーションを実行します。

    dotnet run
    
  6. Web ブラウザーのコンソールに表示されている URL ( http://localhost:5000など) に移動します。

"Hello dotnet-svcutil!" という出力が表示されます。

dotnet-svcutil ツール パラメーターの詳細については、次のようにヘルプ パラメーターを渡すツールを呼び出します。

dotnet-svcutil --help

フィードバックと質問

ご質問やフィードバックがある場合は、 GitHub で問題を開いてください。 GitHub の WCF リポジトリで、既存の質問や問題を確認することもできます。

リリース ノート

  • 既知の問題を含む、更新されたリリース情報については、 リリース ノート を参照してください。

情報