F# 接口属性未序列化

F# 接口属性未序列化,f#,json.net,F#,Json.net,如果我定义了一个记录来实现一个带有附加属性的接口,那么json.net不会序列化接口属性。如何让json.net序列化这些接口属性。这里有一个例子 open Newtonsoft.Json type IRecord = abstract member id : string type ARec = { Name : string } with interface IRecord with member this.id = this.Name let

如果我定义了一个记录来实现一个带有附加属性的接口,那么json.net不会序列化接口属性。如何让json.net序列化这些接口属性。这里有一个例子

open Newtonsoft.Json

type IRecord =
    abstract member id : string

type ARec = {
    Name : string
} with
    interface IRecord with
        member this.id = this.Name

let aRec = {Name = "John"}
JsonConvert.SerializeObject aRec
JsonConvert.SerializeObject(aRec:>IRecord)
都会导致
{“Name”:“John”}
但我期望
{“Name”:“John”;“id”:“John”}


我尝试将
ShouldSerializeid
添加到接口中,但没有任何区别

所有的接口都是在f#中显式实现的,因此它似乎是的解决方案,即应用
[JsonProperty]
,也应该在这里工作。。。但事实并非如此。据我所知,f#似乎将它们作为方法而不是属性来实现。与上面小提琴的c#port相比:您将看到f#type
ARec
只有一个属性,而c#type有两个属性。