web-dev-qa-db-ja.com

.NET標準プロジェクトで「サービス参照を追加する」方法

.NET Standardプロジェクトで「サービス参照の追加」を行いたい(Visual Studio 2017)

WCFアクセスを可能にするために、NuGetに「System.ServiceModel.Http」と「System.ServiceModel.Security」をインストールしました。

ただし、.NET Standardプロジェクトには「サービス参照の追加」メニュー項目はありません。サービス参照を追加するにはどうすればよいですか?

.NET Frameworkプロジェクトには存在しますが、.NET Standardプロジェクトには存在しないため、困っています。

8
Peri

私は少し異なる問題を解決することを望んでここに着陸しました...しかし多分あなたの質問に答えるために;

その後、VS2017を最新バージョンに更新する必要がありました(現在15.5.2です)。プロジェクト>>追加>>接続済みサービスを右クリックし、[Microsoft WCF Webサービス参照プロバイダー]をクリックします。提供されるダイアログは、フレームワークの「サービス参照の追加」オプションのダイアログと非常によく似ています。

新しいクラスなどを追加する場合に使用する「追加」メニューと同じです...

これはバージョン15.5で追加されました。詳細は githubのWCF を参照してください。

4
Damo

Visual Studio 2017コミュニティv15.9.7

ソリューションエクスプローラー->右クリック 依存関係 ->追加 接続されたサービス

スクリーンショット:

3
eic

これらの解決策は私には本当にうまくいきませんでした。私はこれをUnity 2019.1.10fとVisual Studio 2017で使用していました。WCFに関連するDLLをUnityプロジェクトに追加し、サービスクライアントプロキシを生成してそれをスクリプトに引き継ぐ必要があることがわかりました。以下のステップバイステップ。

  1. 新しいUnity 3Dプロジェクトを作成するか、プロジェクトを開いて、プラグインと呼ばれるアセットの下に新しいフォルダーを作成します。
  2. Unityのインストールフォルダーに移動します(例:C:\ Program Files\Unity\Hub\Editor\2019.1.10f1)。
  3. インストールフォルダーからEditor\Data\Mono\lib\mono\2.0に移動します。このフォルダー内にSystem.ServiceModel.dllがあります。このファイルを手順1で作成したPluginsフォルダーにコピーする必要があります。
  4. サービスクライアントプロキシを生成します。いくつかの方法でこれを行うことができます。1つのオプションは、svcutilを使用することです。たとえば、VSコマンドプロンプトで以下のコマンドを実行して、クライアントプロキシクラスを生成します。

    svcutil -out:c:\temp\ClientProxy.cs https://[YourWebServiceDomain]/[Service].svc

  5. 上記のClientProxy.csファイルを、アセットの下の任意の場所にあるプロジェクトにコピーします。

  6. 次に、WebClient.csなどの新しいMonobehaviourスクリプトをプロジェクトに追加します。以下のスクリプトを実行するには、これをシーン内のゲームオブジェクトにアタッチする必要があります。
  7. WebClient.csを開き、新しいプロキシサービスに接続するためのコードを追加します(下の例を参照)。
using UnityEngine;
using System.ServiceModel;
using YourClientProxyNamespace;

public class WebClient : MonoBehavior
{
  void Start()
  {
    using (ProxyClient client = new ProxyClient(
        new BasicHttpBinding(BasicHttpSecurityMode.Transport),
        new EndpointAddress("https://YourWebServiceDomain/Service.svc")))
    {
      var response = client.DesiredMethod();

      // Do whatever with the response
    }    
  }
}
0
Don B

実際には、右クリックして[接続されているサービスの追加]に移動し、[Microsoft WCF Webサービス参照プロバイダー]をクリックすると、[サービスの追加]と同じように機能します。

0
teapeng