.NET Standardプロジェクトで「サービス参照の追加」を行いたい(Visual Studio 2017)
WCFアクセスを可能にするために、NuGetに「System.ServiceModel.Http」と「System.ServiceModel.Security」をインストールしました。
ただし、.NET Standardプロジェクトには「サービス参照の追加」メニュー項目はありません。サービス参照を追加するにはどうすればよいですか?
.NET Frameworkプロジェクトには存在しますが、.NET Standardプロジェクトには存在しないため、困っています。
私は少し異なる問題を解決することを望んでここに着陸しました...しかし多分あなたの質問に答えるために;
その後、VS2017を最新バージョンに更新する必要がありました(現在15.5.2です)。プロジェクト>>追加>>接続済みサービスを右クリックし、[Microsoft WCF Webサービス参照プロバイダー]をクリックします。提供されるダイアログは、フレームワークの「サービス参照の追加」オプションのダイアログと非常によく似ています。
新しいクラスなどを追加する場合に使用する「追加」メニューと同じです...
これはバージョン15.5で追加されました。詳細は githubのWCF を参照してください。
Visual Studio 2017コミュニティv15.9.7
ソリューションエクスプローラー->右クリック 依存関係 ->追加 接続されたサービス
スクリーンショット:
これらの解決策は私には本当にうまくいきませんでした。私はこれをUnity 2019.1.10fとVisual Studio 2017で使用していました。WCFに関連するDLLをUnityプロジェクトに追加し、サービスクライアントプロキシを生成してそれをスクリプトに引き継ぐ必要があることがわかりました。以下のステップバイステップ。
サービスクライアントプロキシを生成します。いくつかの方法でこれを行うことができます。1つのオプションは、svcutilを使用することです。たとえば、VSコマンドプロンプトで以下のコマンドを実行して、クライアントプロキシクラスを生成します。
svcutil -out:c:\temp\ClientProxy.cs https://[YourWebServiceDomain]/[Service].svc
上記のClientProxy.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
}
}
}
実際には、右クリックして[接続されているサービスの追加]に移動し、[Microsoft WCF Webサービス参照プロバイダー]をクリックすると、[サービスの追加]と同じように機能します。