2

Javascript から Silverlight を呼び出す方法について調査しています。メソッドは機能してscriptableいますが、このメソッドは非同期である必要があります。そのため、マネージド コードから文字列などの値を返す場合、実際の文字列値は JavaScript に返されません。ToString戻り型の のようなものです。

このケースを処理し、値をラップ解除するために JavaScript 内で「待機」する通常の方法はありますか?

4

1 に答える 1

0

ScriptObjectJavaScript がコールバックを渡すことができるように、呼び出し可能な Silverlight メソッドはパラメーターを受け取る必要があります。次に、コールバックを呼び出して、終了後に結果を渡すことができます。このようなもの:

[ScriptableMember]
public async Task DoSomethingAsync(ScriptObject callback) 
{
    var result = await SomeAsynchronousThing();
    callback.InvokeSelf(result);
}

次のように呼び出します。

silverlightObj.DoSomethingAsync(function(result) {
    // handle the result
});
于 2013-05-01T19:24:57.953 に答える