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 コマンド ウィンドウから、次の手順を実行します。
次の例のように、プロジェクトの HelloSvcutil という名前のディレクトリを作成し、それを現在のディレクトリにします。
mkdir HelloSvcutil cd HelloSvcutil
次のように
dotnet new
コマンドを使用して、そのディレクトリに新しい C# Web プロジェクトを作成します。dotnet new web
dotnet-svcutil
NuGet パッケージを CLI ツールとしてインストールします。dotnet tool install --global dotnet-svcutil
dotnet-svcutil コマンドを実行して、次のように Web サービス参照ファイルを生成します。
dotnet-svcutil http://contoso.com/SayHello.svc
生成されたファイルは HelloSvcutil/ServiceReference/Reference.cs として保存されます。 dotnet-svcutil ツールは、プロキシ コードに必要な適切な WCF パッケージをパッケージ参照としてプロジェクトに追加します。
サービス リファレンスの使用
次のように、
dotnet restore
コマンドを使用して WCF パッケージを復元します。dotnet restore
使用するクライアント クラスと操作の名前を見つけます。
Reference.cs
には、System.ServiceModel.ClientBase
から継承するクラスと、サービスの操作を呼び出すために使用できるメソッドが含まれます。 この例では、 SayHello サービスの Hello 操作を呼び出します。ServiceReference.SayHelloClient
はクライアント クラスの名前であり、操作の呼び出しに使用できるHelloAsync
というメソッドがあります。エディターで
Startup.cs
ファイルを開き、サービス参照名前空間のusing
ディレクティブを上部に追加します。using ServiceReference;
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); }); }
次のように、
dotnet run
コマンドを使用してアプリケーションを実行します。dotnet run
Web ブラウザーのコンソールに表示されている URL (
http://localhost:5000
など) に移動します。
"Hello dotnet-svcutil!" という出力が表示されます。
dotnet-svcutil
ツール パラメーターの詳細については、次のようにヘルプ パラメーターを渡すツールを呼び出します。
dotnet-svcutil --help
フィードバックと質問
ご質問やフィードバックがある場合は、 GitHub で問題を開いてください。 GitHub の WCF リポジトリで、既存の質問や問題を確認することもできます。
リリース ノート
- 既知の問題を含む、更新されたリリース情報については、 リリース ノート を参照してください。
情報
.NET