2

私は現在、モノに基づく共有ライブラリに取り組んでおり、アプリのビジネスロジックをできるだけ多く配置したいと考えています。この役立つチュートリアルを使用しました。この共有ライブラリに残りのリクエストのロジック全体を入れることができましたが、今は石鹸で立ち往生しています。

monoのコマンドを使用しwsdlて、wsdl からクライアント スタブコードを生成しました (ここで説明されているようにhttp://www.mono-project.com/Web_Services )。生成されたクラスを共有ライブラリのルート プロジェクトである C# ライブラリに配置すると、参照System.Web.Services cannotが見つかるという警告が表示されます。だから私はSystem.Web.Services.dll手動で含めました。Android ライブラリ プロジェクトについては、への参照を追加しました...\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\System.Web.Services.dll。警告なしでコンパイルされます。

しかし、今度は Windows Phone ライブラリ プロジェクトの話になります。System.Web.Services.dllWP 7.5にはありませんよね?Mono-Touch dll を試してみましたが、多くのコンパイル エラーが発生します。

誰かが私がこれから抜け出す方法を知っていますか?

4

1 に答える 1

0

私自身、生成された WSDL にいくつか問題がありました。Mono for Android プロジェクト内の Visual Studio の「Web 参照の作成」部分を介して生成されたクラスは、WCF Web サービスに接続されたときにいくつかの大きな問題を引き起こしたことが判明しました。どこでこの情報に出くわしたのかわかりませんが、これが私がやったことです。

SILVERLIGHT SVCUtilを使用してサービス参照を手動で作成する必要があります。

私の開発システムでは、次の場所にありました。

C:\Program Files (x86)\Microsoft SDKs\Silverlight\v3.0\Tools

以下のコマンドラインで呼び出しました:

slsvcutil.exe http://localhost/<path to WCF service endpoint>/service.svc /directory:"<temp directory to store generated cs file>" /noConfig /namespace:"*,<Full namespace of the generated class>"

これにより、上記の /directory タグで指定されたパスに保存される CS ファイルが実際に生成されます。生成された cs ファイルをプロジェクト ディレクトリにコピーし、プロジェクトに含めます。

別のオプションを探す必要があった問題は、Visual Studio の [Web 参照の追加] オプションで生成された WSDL を使用してデータを適切にプルできたことですが、データを渡そうとするとすぐにWebサービスへのワイヤをバックアップすると、すべてが爆発しました。Silverlight Service Util によって生成されたサービス リファレンスを使用すると、非同期操作用のすべてのコードが実際に適切に生成され、これらの非同期操作を適切に管理する方法を学んだ後は、すべてが夢のように機能します。

この新しい WSDL は Silverlight ユーティリティを使用して生成しているため、Windows Phone 7 でも問題なく動作するはずです。これらすべてを参照する DLL は System.ServiceModel dll であると思います。

元の作者にクレジットを与えたいので、この情報に出くわした場所を思い出せたらいいのにと思いますが、残念ながら思い出せません.

それが役立つことを願っています!

チャイタンヤ・マルヴィッチ

于 2012-05-03T15:58:40.243 に答える