Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F#interactive能帮我找到TypeProvider的导出类型吗?_F#_Type Providers - Fatal编程技术网

F#interactive能帮我找到TypeProvider的导出类型吗?

F#interactive能帮我找到TypeProvider的导出类型吗?,f#,type-providers,F#,Type Providers,我只听了第一部分。虽然我能在F#interactive中完成上半场的工作。我很想得到简单的json提供程序类型 我在程序集上单击鼠标右键,将输出发送到F#interactive,然后打开BTypeProvider.TypeProvider.Provided哪个工作正常。另外,第一个(MyType)类型仍然可以正常生成。但是由于示例教程在调用let inputs=ProvidedTypeDefinition(“inputs”,Some typeof)时似乎没有使用名称空间或程序集,因此我似乎找不到

我只听了第一部分。虽然我能在F#interactive中完成上半场的工作。我很想得到简单的json提供程序类型

我在程序集上单击鼠标右键,将输出发送到F#interactive,然后
打开BTypeProvider.TypeProvider.Provided哪个工作正常。另外,第一个(
MyType
)类型仍然可以正常生成。但是由于示例教程在调用
let inputs=ProvidedTypeDefinition(“inputs”,Some typeof)
时似乎没有使用名称空间或程序集,因此我似乎找不到教程第一部分第二部分生成的任何类型


我很想知道如何对导出的类型进行反思以找到它们

不确定是否可能满足您的需求。 我通常会在主编辑器窗口中编译一次。
这将使Intellisense在主窗口中工作。
然后,您可以从主窗口使用“交互式执行”来运行所需内容。

这并不完全是你想要的,但我认为它应该对你有所帮助。

有几点可能会有所帮助

如本教程所述,可以在上找到本教程代码的完整工作副本。目前还不清楚的是,代码试图这样做,因此不会发生太多事情,除非您将内容类似于博客文章中显示的内容的JSON文件放入该位置。我会尽快更新教程,让它更清晰

类型导出到的命名空间,在本例中为“
Mavnn.Blog.TypeProvider.provider”

希望这将允许您成功地让示例提供程序在FSI中工作-如果您仍然有问题,我建议您在Visual Studio中尝试,因为在尝试加载
NewtonSoft.Json
时可能会出现程序集加载问题


关于你最后一点关于反思类型的问题,恐怕你有点运气不好。大多数类型提供程序,包括教程中的类型提供程序,都会生成“擦除”类型;这些类型可用于在编译过程中引用F#项目,但在运行时不可用于反射或其他CLR语言。如果这些属性中的任何一个对您很重要,您将需要对生成类型提供程序进行一些研究,这些提供程序实际上创建了“real.net对象”。我知道如果生成大型类型系统,会对性能产生一些影响。

在主编辑器窗口中编译一次,您的意思是在Visual Studio中编译程序集?这将使Intellisense在主窗口中工作。-我很确定,在定义类型提供程序的程序集中,对于类型提供程序提供的类型,您可以获得零intellisense。对吗?只有在其他两个不同于我理解的情况下,interactive中的Execute才有意义。如果不遵循链接,可能不清楚,我正在编写自己的类型提供程序,而不是使用已经编写的类型提供程序。感谢您的回复,我已经将您的json文件复制到我的项目中,现在已经尝试打开VisualStudio的第二个实例来引用它。但是,我收到一个错误
error 1类型提供程序“BTypeProvider.TypeProvider+JsonProvider”报告了一个错误:类型提供程序构造函数引发了一个异常:“BTypeProvider.TypeProvider.provider.Inputs”的容器类型已设置为'BTypeProvider.TypeProvider.Provider.Simple'C:\projects\FSharpTypeProviders\BTypeProvider.Tester\Program.fs 1 1 BTypeProvider.Tester