次のクライアントコードがあります。
|>! OnClick (fun _ _ -> Server.CreateBug input.Value |> Server.SendCommand)
タイプとサーバーコードは次のとおりです。
type Command =
| CreateBug of string
| Query of Query * AsyncReplyChannel<string>
[<Rpc>]
let SendCommand cmd =
dispatcher.Post cmd
クライアントはこれを次のようにシリアル化できます: [{"$":0,"$0":"test"}]
しかし、デバッグ時に次のログ エラーが発生します。
WebSharper.Web エラー: 0 : リモート呼び出しの実行に失敗しました。JSON デシリアライザーの取得に失敗しました: ClientReferral.Server+Command[]
WebSharper エラー: 0 : リモート呼び出しの実行に失敗しました。JSON デシリアライザーの取得に失敗しました: ClientReferral.Server+Command[]
このコードはかなり些細なものであり、WebSharper のマニュアルには動作しないことを示すものはないようです。私もそのように使った覚えがあるので、何が悪いのかわかりません。
編集:これはクエリの定義です:
type Query =
| GetBugs
| GetBugInfo of int