12

SvcUtil.exeを使用して wsdl ファイルからIClassName.csファイルを生成していますが、正常に動作しています。私の問題は、 SvcUtil.exe のコマンド引数を使用してClassName.svcファイルを生成する方法がわからないことです。

SvcUtil.exe を実行した後、すべてのクラス *.svc、*.cs、およびインターフェイスを含む Visual Studio Wizard から作成したときのように、WCF サービスを取得したいと考えています。

ありがとう、シュクルチ

4

5 に答える 5

22

まず、プロキシ クラスを生成するには、サービスを起動して実行する必要があります。したがって、このユーティリティを使用する前に、サービスが問題なく実行されていることを確認してください。

サービスの状態を確認したら、Visual Studio コマンド プロンプトに移動し、次のコマンドを実行します。

svcutil http://localhost/MyService/ClassName.svc /Language=c#
/t:Code /out:ClassNameProxy.cs /config:ClassNameProxy.config

上記のコマンドで、サービス URL ( ) をサービスの URL に置き換える必要がhttp://localhost/MyService/Service1.svcあります。私のサービスは c#.net で開発されているため、/Language=c# フラグを使用して同じ言語でプロキシを生成することにしました。

/t:code は、出力をコードとして生成するように指定します。

/out:ClassNameProxy.cs /config:ClassNameProxy.config パラメーターは、これらのパラメーター値で指定されたとおりにファイルに名前を付けるようにユーティリティに指示します。コマンドを実行すると、ツールによって出力ファイルと構成ファイルが生成されます。

その後、ClassNameProxy.cs ファイルをプロジェクトに含め、ClassNameProxy.config ファイルを開き、エントリを web.config ファイルにコピーします。ClassNameProxy.vb ファイルを更新し、プロジェクトで使用しているものに従って名前空間を更新する必要がある場合もあります。その後、コードでサービスを簡単に参照して操作を呼び出すことができます。

于 2014-06-03T12:48:55.010 に答える
4

まだ答えを探していて、2012 バージョンを動作させることができなかった人のために、Visual Studio 2015 と .Net 4.5 は svcutil.exe ツールを更新して、/serviceContract スイッチを使用して、.svc サービスとして実装できるクラスを生成しました。元の XSD によっては、/syncOnly /wrapped /messageContract スイッチも提供する必要がある場合があります。

于 2016-06-14T13:46:53.550 に答える