Web参照の代わりにサービス参照を追加するときにSilverlightでWebサービスクラスを使用する

StackOverflow https://stackoverflow.com/questions/1600343

質問

シナリオ:

Silverlight 3.0をWebサービスのクライアントとして使用しています。

デザイン:

サーバーには DeviceInfoService という名前のクラスがあり、デバイスのリストの取得、デバイスのプロパティの取得などの基本的な機能を備えています。

ASP.NETプロジェクトを開いてWeb参照を追加しようとすると、「Web参照」を追加するオプションが見つかります。この方法でWeb参照を追加すると、DeviceInfoServiceクラスにアクセスできます。それには、オブジェクトを作成してから、メソッドにアクセスします。

Webリファレンスv / sサービスリファレンス:

Silverlightへのアクセス:サービス参照を追加しようとすると、Web参照を追加するオプションがありません。サービスリファレンスを使用すると、WSDLファイルがダウンロードされるまで、すべてが正常に機能します。 .NET 2.0に戻ることでこのオプションを取得できると人々は言いますが、おそらく.NET 2.0ではSilverlightは動作しません

問題

クラスDeviceInfoServiceにアクセスしようとすると、見つかりません。私が取得するのは、インターフェース-DeviceInfoServiceSoapおよびDeviceInfoServiceSoapChannelのみです。 DeviceInfoServiceSoapClientという名前のクラス。

メソッドGetHostedDevicesおよびGetDeviceInfoは使用できなくなりました。 GetDeviceInfoRequest、GetDeviceInfoRequestBody、GetDeviceInfoResponse、GetDeviceInfoResponseBodyのみを取得します。

これら4つのクラスの使用方法をGoogleで調べましたが、何も見つかりませんでした。 ASP.NETのように、これら2つのクラスを直接取得し、それらの要求応答タイプを使用しないようにします。

役に立ちましたか?

解決

ASP.NETのWeb参照とは、Silverlightのサービス参照と同等です。

SilverlightでWebサービスを使用する方法の例を次に示します。 CDYNE冒Proフィルター

プロジェクトに新しいサービス参照を追加します。URLは http:// wsです。 .cdyne.com / ProfanityWS / Profanity.asmx?wsdl 、名前をServiceReference1のままにします。

このコードビハインドを使用して、サービスを呼び出します(非同期に実装されています):

public MainPage()
{
    InitializeComponent();

    string badText = "I wonder if the filter will filter this out: shit bad luck";
    ServiceReference1.ProfanitySoapClient client = new ServiceReference1.ProfanitySoapClient();
    client.ProfanityFilterCompleted += new EventHandler<ServiceReference1.ProfanityFilterCompletedEventArgs>(client_ProfanityFilterCompleted);
    client.ProfanityFilterAsync(badText, 0, false);            
}

void client_ProfanityFilterCompleted(object sender, ServiceReference1.ProfanityFilterCompletedEventArgs e)
{
    string cleanText = e.Result.CleanText;  // Web service callback is here
}

そして、SilverlightでWebサービスを立ち上げて実行しています!

他のヒント

いくつかの概念については非常に混乱しているように聞こえます。

次のSilverlight.Netビデオを見て、それが役立つかどうかを確認してください。 方法SilverlightでWCFおよびASP.NET Webサービスを使用する方法

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top