如何为ProvideType数组创建类型?

时间:2014-06-05 16:42:11

标签: f# type-providers

如何为ProvideType数组创建类型? 换句话说,什么是MakeArrayTypeTypeMakeArrayType的替代方法?

编辑: 问题在于,当我尝试{{1}}时,TP失败。

以下是重现错误的示例:https://gist.github.com/dsevastianov/46d1a8495c4af46a9875

客户端失败,“项目'Birch []'上的操作'UnderlyingSystemType'不应在提供的类型,成员或参数上调用”

1 个答案:

答案 0 :(得分:2)

这是ProvideTypes.fs中的错误。只需确保GetUnderlyingSystemType类已实现ProvidedSymbolType。这似乎工作正常:

override this.UnderlyingSystemType = 
    match kind with 
    | SymbolKind.SDArray
    | SymbolKind.Array _
    | SymbolKind.Pointer
    | SymbolKind.FSharpTypeAbbreviation _
    | SymbolKind.ByRef -> upcast this
    | SymbolKind.Generic gty -> gty.UnderlyingSystemType