ホームページ >バックエンド開発 >C#.Net チュートリアル >Flex と .NET の相互運用性 (2): WebService に基づくデータ アクセス (1)
Flex は、リモート データに直接アクセスするための
この記事では、.NET プラットフォームで C# 言語で開発された WebService をリモート データ ソースとして使用し、WebService への接続や WebService のリモート呼び出しなど、Flex と .NET の WebService の間のデータ通信の知識ポイントを詳細に紹介します。メソッド 、パラメータおよびその他の関連するナレッジ ポイントを WebService メソッドに渡します。 3 つのタグの使用法は基本的に同じです。ここでは
まず次のコード ブロックを見てください:
1
3useProxy=" false">
4
5
6
wsdl属性はアクセス先のWebServiceのwsdlアドレスに指定可能で、2つの操作タグ(
1///<まとめ>
2///戻り文字列
3///< ; /summary>
4///
5[WebMethod]
6publicstringHelloWorld()
7{
8return"HelloWorld";
9}
10
11///
12///単純なオブジェクトを返す
13///
14///
15[WebMethod]
16publicBookGetBook()
17{
18returnnewBook
19{
20Id=1,
21Name="三國志",
22Author="羅関中",
23Price=100
24};
25}
上記はWebServiceメソッド定義とFlexクライアント経由です(mxml)< mx:WebService> タグを使用して、WebService の完全なプロセスにアクセスします。
1
2< ![CDATA[
3importmx.controls.Alert;
4importmx.rpc.events.FaultEvent;
5importmx.rpc.events.ResultEvent;
6
7/**
8* WebService へのリクエストを開始します - HelloWorld メソッドを呼び出します。dataService は
9**/
10internalfunctiononRequest() :void
11{
12dataService.HelloWorld();
13}
14
15/**
16*処理が成功した後にリクエスト結果が返されました
17**/
18internalfunctiononSuccess(evt:ResultEvent):void
19{
20Alert.show(evt.result.toString( ));
21 }
22
23
24/**
25*リクエスト失敗時の処理関数
26**/
27internalfunctiononFault(evt:FaultEvent):void
28{
29Alert.show("WebServiceへのアクセスに失敗しました!");
30}
31]]>
32
上記の呼び出しを通じて、Flex と .NET WebService の間の対話を完了できます。もちろん、Flash/Flex クライアントで WebService を呼び出すときにパラメータを渡すこともできます。次の WebService の WebMethod 定義: Actipro CodeHighlighter によって生成されたコードの強調表示。 (フリーウェア)
http://www.CodeHighlighter.com/
-->1///<まとめ>
3///
4///
5///
6[WebMethod]
7publicstringConvertToUpper(stringvalue)
8{
9returnvalue.ToUpper();
10}
1
1 /* *
2*WebService へのリクエストを開始します
3**/
4internalfunctiononRequest():void
5{
6//dataService.HelloWorld();
7dataService.ConvertToUpper("abcdefg");
8}
さらに、
前に戻って、WebService のメソッド定義を見てください。メソッドの 1 つである GetBook は、返されたオブジェクトである場合、Flex クライアントでこのオブジェクトの値を取得する方法を示します。 ?詳細については、次のコード例を参照してください:
1internalfunctiononObject():void
2{
3dataService.GetBook();
4}
5
6internalfunctiononObjectSuccess(evt:ResultEvent):void
7 {
8 //イベントの result 属性を通じて戻り値を直接取得し、その属性に直接 OK
9Alert.show(evt.result.Name);
10}
11
12/**
13*リクエスト失敗時の処理関数
14**/
15internalfunctiononFault(evt: FaultEvent):void
16{
17Alert.show("WebService へのアクセスに失敗しました!");
18}