生成类型提供程序的工作示例

5
请问有没有人能够给我提供一个F# TypeProvider生成类型的工作示例?最好是基于F#样本包“ProvidedTypes-*.fs”库。
我尝试了F# 3.0示例包中的“GeneratedTypeProvider”,但它对我无效。对于C#项目,我收到了“...'FSharpLib.T'不包含定义为'F1'的内容,也没有接受类型为'FSharpLib.T'的第一个参数的扩展方法'F1'可以找到(是否缺少使用指令或程序集引用?)”。我并不太关心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,这肯定是次优的选择。
不确定GitHub上的colinbull的“Playground”项目,因为它似乎只是从其他程序集中复制类型。
1个回答

2

一般情况下,示例包中的测试项目包含对已擦除和生成型提供程序的测试。但是,在运行测试时,我看到了与您相同的错误 - 似乎“提供的类型”API最近部分损坏 - 现在已修复(至少对于测试项目,尚未尝试GeneratedTypeProvider示例)。


谢谢。"GeneratedTypeProvider" 工作正常。 - Dmitry Morozov

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