F# WebSharper接口生成器-记录

F# WebSharper接口生成器-记录,f#,websharper,F#,Websharper,我如何定义一个将被序列化为JSON对象的记录。。。我一直在尝试为YUI2构造函数构建oConfig参数,类似于: type TreeParameter = { Type : string Label : string Expanded : bool Children : TreeParameter array } 谢谢 David我想我们可以实现它,但它还没有进入接口生成器。目前,您可以执行以下操作: let Tr

我如何定义一个将被序列化为JSON对象的记录。。。我一直在尝试为YUI2构造函数构建oConfig参数,类似于:

type TreeParameter =
    {
        Type : string
        Label : string
        Expanded : bool
        Children : TreeParameter array
    }
谢谢


David

我想我们可以实现它,但它还没有进入接口生成器。目前,您可以执行以下操作:

let TreeParameter =
    let self = Type.New()
    Pattern.Config "TreeParameter" {
        Required =
            [
                "Type", T<string>
                "Label", T<string>
                "Expanded", T<bool>
                "Children", Type.ArrayOf self
            ]
        Optional = []
    }
    |=> self
从JavaScript的角度来看,这些值如下所示:

type TreeParameter(t: string, l: string, e: bool, c: TreeParameter[]) =
    member this.Type = t
    member this.Label = l
    member this.Expanded = e
    member this.Children = c
{Type:t,Label:l,Expanded:e,Children:c}

本质上,它就像一个没有记录语法和功能扩展的记录。

WebSharper现在已经实现了这个功能。只需使用
TSelf

例如:

let TreeParameter =
    Pattern.Config "TreeParameter" {
        Required =
            [
                "Type", T<string>
                "Label", T<string>
                "Expanded", T<bool>
                "Children", Type.ArrayOf TSelf
            ]
        Optional = []
    }
let树参数=
Pattern.Config“树参数”{
必需的=
[
“类型”,T
“标签”,T
“扩展”,T
“儿童”,t自我排列类型
]
可选=[]
}

我不知道自动序列化为JSON的方法,但您可以重写ToString()方法,例如,这实际上是关于WebSharper接口生成器的,我假设它会有特殊的操作符来定义这样的类型。我没有看到一个在Bing地图扩展中生成记录的例子:我开始认为这是不可能的。