![](/img/trans.png)
[英]How to pass a discriminated union from C# to a F# function (F# - C# interop)
[英]F# Data CsvProvider use from a C# application Interop
未來的極端noob學習問題:我有一個模塊,我想在我的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#庫獲取數據
還有如何處理十二個不同文件的問題,因為我必須為CsvProvider指定模板文件,我想我必須編寫12個不同的函數?
我在SO周圍搜索並找到了讓我走到這一步的東西,但我已經撞牆了。 任何幫助,包括健全檢查將非常感激。
CsvProvider
中的FSharp.Data
是一個擦除類型提供程序。 這意味着在C#中沒有可以使用和使用的類型。
許多F#類型的提供程序(例如此類)僅在從F#中使用時才有用。
在這種情況下,您最有可能最好解析CSV數據並通過C#代碼中的某些API耗材返回所需的結果。
還有如何處理十二個不同文件的問題,因為我必須為CsvProvider指定模板文件,我想我必須編寫12個不同的函數?
通常,每個文件結構需要一個單獨的函數,而不是每個文件。 如果12個文件都使用相同的列/標題/等,則單個類型提供程序類型將在每個文件中使用。 提供的靜態文件名僅用於確定生成的類型的列結構。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.