有人能指出我生成类型F#TypeProvider的工作示例吗?理想情况下,基于F#样本包“提供的类型 - * .fs”库。
我尝试使用F#3.0 Sample Pack中的“GeneratedTypeProvider”,但它对我不起作用。我收到“......'FSharpLib.T'不包含'F1'的定义,并且没有扩展方法'F1'接受'FSharpLib.T'类型的第一个参数可以找到(你是否错过了使用指令或者汇编参考?)“用于C#项目。我不太关心C#项目(ConsoleApplication1),但当我将ConsoleApplication2更改为作为调用T.F1的控制台应用程序运行时,我收到了可怕的“类型FSharpLib.Program的pass3错误,错误:GetMethodRefAsMethodDefIdx中的错误,mref =”F1 “,错误:抛出了'Microsoft.FSharp.Compiler.AbstractIL.ILBinaryWriter + MethodDefNotFound'类型的异常。”老实说,源代码不同步是可疑的 http://apollo13cn.blogspot.com/2013/01/generated-type-provider-and-code.html
我也看了http://code.google.com/p/froto/source/browse/Gen/ProtoTypeProvider.fs。我没有编译/运行该项目,但它没有使用Sample Pack,这当然是次优的。
不确定colinbull在GitHub上的“Playground”项目,因为它似乎只是从其他程序集中复制类型。
答案 0 :(得分:2)
通常,示例包中的测试项目包含已擦除和生成的类型提供程序的测试。但是当我运行测试时,我看到了同样的错误 - 似乎'提供的类型'API最近被部分破坏 - 现在已经修复(至少对于测试项目,还没有尝试过GeneratedTypeProvider示例)