0

サーバー経由でAMF3データを送受信するためにFluorineFxを使用しています。

 netConnection.Call("my-amf", "zend", "Ka_Services_Park", "getCompleteParkOfUser", new GetCustomersHandler(), new object[] { "msg_2580671638", "20251876" });

    public class GetCustomersHandler : IPendingServiceCallback
    {
        public void ResultReceived(IPendingServiceCall call)
        {
            object result = call.Result;
        }
    }

GetCustomersHandler クラスから呼び出されたクラスに応答を返したい Form1 クラスの netConnection.Call で GetCustomersHandler を呼び出し、GetCustomersHandler から Form1 に応答 (オブジェクトの結果) を返す/取得したい。

4

1 に答える 1

1

コールバック オブジェクトに結果をプロパティとして保存させます。

public class GetCustomersHandler : IPendingServiceCallback
{
    GetCustomersHandler()
    {
        this.Signal = new ManualResetEvent(false);
    }

    public void ResultReceived(IPendingServiceCall call)
    {
        this.Result = call.Result;
        this.Signal.Set();
    }

    public ManualResetEvent Signal { get; protected set; }
    public object Result { get; protected set; }
}

呼び出し元の関数で、コールバック オブジェクトを保持します。その後、netConnection.Call()戻ったときに値を取得できます

GetCustomersHandler callback = new GetCustomersHandler();
netConnection.Call("my-amf", "zend", "Ka_Services_Park", "getCompleteParkOfUser", callback, new object[] { "msg_2580671638", "20251876" });
callback.WaitOne();
object result = callback.Result;
于 2013-05-24T20:03:09.627 に答える