F#Data CsvProvider使用C#应用程序Interop

时间:2014-06-17 23:10:38

标签: c# f# f#-data

未来极端的菜鸟学习问题: 我有一个模块,我想在我的C#(通用)应用程序中使用。 C#应用程序将下载并解压缩包含12个CSV的文件,这些文件将始终采用相同的格式。所以我所做的就是提前下载CSV,并将它们添加到我的解决方案中,以便在CsvProvider<“thefile.csv”>中引用该文件。将在编译时出现。

namespace ExperimentalFSLibrary    
module CsvHelper =
    open FSharp.Data
    let GetCsvA path = 
        CsvProvider<"thefileA.csv">.Load(path)

然后从我的c#应用程序中调用它,如下所示:

var ReceivedCsvA = ExperimentalFSLibrary.CsvHelper.GetCsvA

我从F#库中获取数据没有任何成功

还有如何处理12个不同文件的问题,因为我必须为CsvProvider指定模板文件,我想我必须编写12个不同的函数?

我在SO周围搜索并找到了让我走到这一步的东西,但是我已经碰壁了。任何帮助,包括健全检查都将非常感激。

1 个答案:

答案 0 :(得分:4)

CsvProvider中的FSharp.Data是一种删除类型提供程序。这意味着在C#中没有可以使用和使用的类型。

许多F#类型的提供程序(例如此类)仅在F#中使用时才有用。

在这种情况下,您最有可能最好解析CSV数据并通过C#代码中的某些API耗材返回所需的结果。

  

还有如何处理12个不同文件的问题,因为我必须为CsvProvider指定模板文件,我想我必须编写12个不同的函数?

通常,每个文件结构需要一个单独的函数,而不是每个文件。如果12个文件都使用相同的列/标题/等,则单个类型提供程序类型将在每个文件中使用。提供的静态文件名仅用于确定生成类型的列结构。