从F#类型提供程序中提供一个区分联合

9

我已经了解了类型提供程序的基础知识,比如创建一个类型。

let thisAssembly = Assembly.GetExecutingAssembly()
let t = ProvidedTypeDefinition(
           thisAssembly,namespaceName,
           xType.Attribute(xname "name").Value,
           baseType = Some typeof<obj>)

但是我需要能够定义记录类型和 DU 类型,是否有使用类型提供程序完成此操作的方法?

1个回答

7

很遗憾,在类型提供者中,无法定义任何F#特定类型,比如辨识联合、记录或模块,只有类和命名空间,这有点不幸。


1
这是CLR的限制吗?我的意思是,在函数式语言中,类是如此受限制。例如,记录将更自然地成为SQL查询的结果。 - Ciantic
1
不,这不是CLR的限制。最近已经接受了提案,允许提供的类型成为记录和DUs。不确定它们是否会在F# 8之前出现,但谁知道呢。 - Abel
@Abel,有没有相关提案的链接可以让我们跟进进展情况? - GrumpyRodriguez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接