问题标签 [type-providers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
270 浏览

types - 在 F# 中创建提供类型的列表

我正在尝试向fsharpx添加一个基本的 JSON 类型提供程序。目前我正在努力使用 JSON 数组。考虑以下测试用例:

这个想法是我想使用数组中的第一个元素来获取集合元素的类型。然后我想向 SimpleArray 类型添加一个属性“items”,它给出了这个新类型的列表。

代码可以在 github repo Github中找到。有趣的部分从第 38 行开始。正如您所见,整个事情必须是递归的,因为 JArray 还可以包含嵌套的 JArray。

谢谢,史蒂芬

0 投票
3 回答
213 浏览

visual-studio - 带有 Visual Studio Beta 的类型提供程序示例

好消息,类型提供程序现在使用 Microsoft.FSharp.Quotations。FSharpExpr而不是Linq表达式

坏消息,许多样本不再工作,那些使用 ProvidedTypes-0.1.fs .....

你知道在哪里可以获得更新的样本/ProvidedTypes-0.x.fs 吗?

更新:

除非我弄错了,否则位于示例 F#3.0 中 YourFSharp3SampleBeta\SampleProviders 的提供程序尚未更新。

0 投票
1 回答
835 浏览

f# - F# SqlDataConnection TypeProvider 不适用于 Sql Server Ce

我在 Win 8 CP 的 VS 11 Beta 中使用新的 F# 类型提供程序,但我无法说服 SqlDataConenction 类型提供程序与 SqlCe 数据库一起使用。编码:

数据库存在并且是使用 VS11 对话框 Server Explorer/Data Connections/Add New Connection/Sql Server CE/Create 创建的。无论我尝试什么,我总是会收到以下错误:

类型提供程序“Microsoft.FSharp.Data.TypeProviders.DesignTime.DataProviders”报告错误:读取架构时出错。错误:无法打开“C:\Test\Test.sdf”。未安装提供程序“System.Data.SqlServerCe.3.5”。

到目前为止我已经尝试过:

  • 安装了Sql Server Ce 3.5,但错误依旧。
  • 修改了连接字符串并添加了对项目的匹配引用:
    • “提供者=System.Data.SqlServerCe.3.5;数据源=C:\Test\Test.sdf”
    • “提供者=System.Data.SqlServerCe.4.0;数据源=C:\Test\Test.sdf”
0 投票
2 回答
255 浏览

.net - 类型提供程序不适用于 .net 2.0/3.x?

当我尝试为 .net 2.0 或 .net 3.5 创建项目时,我无法使用与类型提供程序相关的任何类型。根据参考资料,VS 将 F# 3.0 用于 .NET 2.0。那么类型提供程序不适用于 .net 2.0/3.x 吗?它仅在 .net 4.0 及更高版本下可用?

PS BTW FSharp.Core.dll for .net 2.0(位于C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\3.0\Runtime\v2.0\FSharp.Core.dll)不包含与类型提供程序相关的类型。

实际上,我一直认为 F# 团队使 F# 2.0 和 F# 3.0 的所有功能都可用于 .NET 2.0。

0 投票
1 回答
735 浏览

f# - 带有类型提供程序的可移植库

据我了解,F# 类型提供程序始终是一个不可移植的类库(例如,它将使用 WinRT 中不可用的 Reflection.Emit)。要在我的 F# 类库中使用它,我需要添加对类型提供程序 DLL 的引用,因此该库必须是不可移植的才能编译。

在这种情况下,我很乐意将其分成一个可移植程序集和一个使用类型提供程序的程序集。我可以编译它的唯一方法是向我的 C# 应用程序项目 (.NET 4.5) 添加对 Fsharp.Core 的引用 - 但在运行时 FSharp.Core 的版本之间仍然存在冲突。

我可以解决冲突吗,我是否错误地使用了类型提供程序,或者它是否还不能完成?

0 投票
1 回答
1800 浏览

f# - 在 F# 中创建记录类型

我想根据提供的字段制作一个简单的记录类型。

那是 :

对于这样一个简单的任务,直接去找类型提供者看起来像是强大的火力。

还有其他方法吗?

更新

我发现以下问题看起来非常相似 通过反射创建 F# 记录

0 投票
2 回答
1393 浏览

f# - 如何使用 F# 中的类型提供程序连接到 SQL Server Compact Edition 4.0?

我正在尝试从 F# 连接到 SQL Server Compact Edition 数据库,并尝试使用类型提供程序。这是在 Visual Studio 11 Beta 中,所以我意识到可能因此存在问题,但我认为更有可能是我还没有专业知识。

但是,我注意到 Microsoft.FSharp.Data.TypeProviders 中没有特定于 CE 的类型提供程序,而且我不确定常规的 SqlDataConnection 是否可以解决问题,所以这可能就是问题所在。

但是,当我尝试创建连接时,IDE 似乎至少可以识别出我正在尝试访问 CE 数据库。

所以,我有以下代码:

所以它是相当标准的,或多或少直接来自使用类型提供程序项菜单添加新的 LINQ to SQL。

我通过连接字符串获得的工具提示是“未安装提供程序'System.Data.SqlServerCe.3.5'。” 看起来似乎表明没有安装 Sql Server CE 是一个问题,但是我有库,能够使用常规 SqlCEConnection 连接到数据库并运行 SqlCeCommands 等。由于它是 4.0 而不是 3.5,我不确定它是否在寻找错误的提供者。我在 VS 11 beta 中创建了数据库,所以我认为所有版本都应该匹配等等。

所以简而言之,我想知道我是否做错了什么,或者 VS11 beta 类型提供程序库是否还不支持 CE 4.0,或者我需要做些什么来实现它。

谢谢!

0 投票
2 回答
788 浏览

f# - 类型提供程序在 f# 中为我提供“不支持的常量类型:System.double”错误

我想知道这个错误来自哪里。这是代码,在使用 fsahrpx DSL 的 TP 下面

更新:我找到了一个“解决方案”,即在外面进行演员表,每次演员表构造一个吸气剂。如果有人知道为什么会发生这种情况,或者有更好的解决方案,我会很高兴知道。(ProvidedTypes-0.2.fs 中的有限引用模式?)

编辑:我绝望的失败尝试并不那么有趣。例如,两个有趣的是 Test93 或 Test92。他们为什么会失败?

更新 添加了最诉讼案件 90,91,92,93

测试

0 投票
2 回答
386 浏览

f# - 嵌套类型提供程序

我有一种类型的提供程序连接到网络以检索数据。并通过类型提供者机制产生(我们称之为虚构的)“静态类型”。

当然,我可能并不总是保持联系。我可能在卫星连接中断的私人飞机上大发雷霆。

有没有人体验过构建一个“离线类型提供者”,它(以某种方式)将一个类型(来自一个类型提供者)作为输入,将其定义存储在磁盘上,并在以后为您提供所述类型定义以便在前往 Koh 的途中轻松访问帕岸?

由于类型不允许作为 TP 的参数,我正在考虑提供程序集名称 + 类型名称以脱机。

0 投票
1 回答
257 浏览

f# - 何时需要调用“ConvertToGenerated”成员以使用类型提供程序生成类型

我很难解读Type Provider Tutorial的“提供生成的类型”部分。本教程提供了以下规范。

“您还必须在根提供的类型上调用 ConvertToGenerated,其嵌套类型形成一组封闭的生成类型。此调用将给定的提供的类型定义及其嵌套类型定义发送到程序集中,并调整所有提供的类型定义的 Assembly 属性以返回“

我不知道在哪里放置 ConvertToGenerated 调用,我不确定程序集文件名参数的要求。有人可以提供一个例子吗?谢谢。