Я ищу хорошее руководство с последовательными и подробными шагами по установке Perl Strawberry, MySQL и DBD :: mysql в Windows XP. m возникли проблемы с преобразованием карты Java / JSON в пригодный для использования объект F #. Вот суть моего кода: member this.getMapFromRpcAsynchronously = Rpc.getJavaJSONMap (новое действие <_> (this ....
У меня проблемы с преобразованием карты Java / JSON в пригодный для использования объект F #.
Вот суть моего кода:
member this.getMapFromRpcAsynchronously =
Rpc.getJavaJSONMap (new Action<_>(this.fillObjectWithJSONMap))
()
member this.fillObjectWithJSONMap (returnedMap : JSONMap<string, int> option) =
let container = Option.get(returnedMap)
let map = container.map
for thing in map do
this.myObject.add thing.key
// do stuff with thing
()
JSON, возвращаемый моим методом RPC, выглядит так:
{"id":1, "result":
{"map":
{"Momentum":12, "Corporate":3, "Catalyst":1},
"javaClass":"java.util.HashMap"}
}
Я пытаюсь сопоставить его с F # DataContract, который выглядит так:
[<DataContract>]
type JSONMap<'T, 'S> = {
[<DataMember>]
mutable map : KeyValuePair<'T, 'S> array
[<DataMember>]
mutable javaClass : string
}
[<DataContract>]
type JSONSingleResult<'T> = {
[<DataMember>]
mutable javaClass: string
[<DataMember>]
mutable result: 'T
}
Наконец, метод F #, который выполняет фактический вызов RPC (Rpc.getJavaJSONMap выше) выглядит следующим образом:
let getJavaJSONMap (callbackUI : Action<_>) =
ClientRpc.getSingleRPCResult<JSONSingleResult<JSONMap<string, int>>, JSONMap<string, int>>
"MyJavaRpcClass"
"myJavaRpcMethod"
"" // takes no parameters
callbackUI
(fun (x : option<JSONSingleResult<JSONMap<string, int>>>) ->
match x.IsSome with
| true -> Some(Option.get(x).result)
| false -> None
)
Во время компиляции я не получаю ошибок. Вызывается мой метод RPC, и возвращается результат (используя Fiddler для просмотра фактического вызова и возврата). , похоже, у F # возникли проблемы с сопоставлением JSON с моим DataContract, поскольку возвращенная карта в самом верху всегда имеет значение null.
Будем очень признательны за любые мысли или советы. Спасибо.