質問は次のリンクに関連しています。
WebSharper を使用してサーバー上で Google ビジュアライゼーション用のデータを生成するにはどうすればよいですか
最新バージョンの Websharper (オープン ソース アルファ リリース) を使用して上記を再実装したかったのですが、次のエラーが表示されます。
次のメタデータのデシリアライズに失敗しました: IntelliFactory.WebSharper.Google.Visualization、バージョン = 3.0.0.0、カルチャ = ニュートラル、PublicKeyToken = dcd983dec8f76a71
クライアント サーバー Web アプリケーションを開きました。それぞれのファイルのコードは次のとおりです。
Remoting.fs内
namespace WebsiteX
open System
open IntelliFactory.WebSharper
open IntelliFactory.WebSharper.Html
open IntelliFactory.WebSharper.Google
open IntelliFactory.WebSharper.Google.Visualization
open IntelliFactory.WebSharper.Google.Visualization.Base
open IntelliFactory.WebSharper.EcmaScript
open IntelliFactory.WebSharper.Web
module Remoter =
[<Remote>]
let RandomData () =
let random = new Random()
let valueCount = 100
let maxValue = 300
let seriesCount = random.Next(5)
let data = new Base.DataTable()
data.addRows(valueCount)
|> ignore
let addSeries index =
let name = sprintf "Series %d" index
data.addColumn(ColumnType.NumberType, name)
|> ignore
Seq.init valueCount (fun index -> random.Next(maxValue))
|> Seq.iteri (fun valueIndex value -> data.setValue(index, valueIndex, value) |> ignore)
[0 .. seriesCount]
|> List.iter addSeries
data
Client.fsで:
namespace WebsiteX
open IntelliFactory.WebSharper
open IntelliFactory.WebSharper.Html
open IntelliFactory.WebSharper.Google
open IntelliFactory.WebSharper.Google.Visualization
open IntelliFactory.WebSharper.Google.Visualization.Base
open Remoting
[<JavaScript>]
module Client =
[<Remote>]
let dd = Remoter.RandomData()
[<JavaScript>]
let Main() =
Div []
|>! OnAfterRender(fun container ->
let visualization = new LineChart(container.Body)
let options =
LineChartOptions(
width = 400,
height = 240,
legend = Legend(position = LegendPosition.Bottom),
title = "Title")
visualization.draw(dd, options))
Main.fs は何も変更していません (提供されているテンプレートと同じです)。私は Web 開発にあまり詳しくないので、簡単な答えがあるかもしれません。
ビルドしようとすると、次のメッセージが表示される理由: Failed to deserialize metadata for: IntelliFactory.WebSharper.Google.Visualization, Version=3.0.0.0, Culture=neutral, PublicKeyToken=dcd983dec8f76a71
Websharper をダウンロードし、Nuget からプレリリース バージョンをインストールしました。WebSharper.3.0.1.73-alpha および WebSharper.Google.Visualization.3.0.2.193-alpha の使用
WebSharper.3.0.3.76-alpha にアップグレードして修正しましたが、Google Chrome で実行すると次のようになります。
You called the draw() method with the wrong type of data rather than a DataTable or DataView
ありがとう!