2017-03-01 124 views
4

對不起,如果這個問題有點不清楚。在我對F#4.0中的軟件包感到困惑的時候,這是我能做的最好的。如何訪問FSharp.Data.JsonExtensions?

Don Syme,Adam Granicz和Antonio Cisternino的書Expert F# 4.0包含處理JSON數據的代碼。代碼開頭

open FSharp.Data 
open FSharp.Data.JsonExtensions 

我已經安裝了Visual Studio中FSharp.Data。儘管如此,「JsonExtensions」這個詞在它下面會出現紅色的小波,而其餘的代碼不會被編譯。

在解決方案資源管理器中訪問Add References我沒有找到包FSharp.Data.JsonExtensions。我也看了下NuGet,發現沒有包FSharp.Data.JsonExtensions。有文檔JsonExtensions
這表明它是一個模塊。但是,使用Visual Studio中不FSharp.Data.下出現的點(只有一個條目:Unit Systems

我怎樣才能讓這個模塊中的代碼可用,所以我可以運行在書中的代碼?

+2

你正在使用哪個版本的VS? –

+2

您確定該軟件包安裝正確嗎? –

+1

@FoggyFinder - 我正在使用VS社區版本14.0.25431.01更新3與Microsoft .NET Framework版本4.6.01586。 – Soldalma

回答

3

發生這種情況實際上是因爲實際上您沒有安裝FSharp.Data(所以Foggy就在上面)。有一個FSharp.Data命名空間,但您需要編制包才能使用它。所以去Tools | Nuget Package Manager | Manage Nuget Packages for Solution並下載最新最好的FSharp.Data。這會自動將其添加到您的引用文件VS:

Nuget the package

參見:

enter image description here

現在你可以使用它:

enter image description here

如果你是在.fsx腳本中使用它,請務必參考#r

#r @"..\packages\FSharp.Data.2.3.2\lib\net40\FSharp.Data.dll"

在這種情況下的參考,你可以只需右鍵單擊(nugetting後),VS會爲你生成路徑:

enter image description here

如果你沒有看到Send to F# Interactive我強烈建議你安裝Visual F# Power Tools

您可以探索訪問/串行化JSON文件的其他方式:還有就是JSON type providerNewtonsoft JSONFSharpluChironFSPickler

+0

我去了解決方案的管理包,並在標籤安裝點擊FSharp.Data,它有一個綠色的選中標記。在右側打開一個窗口,顯示兩個複選框(第一個用於所有項目,第二個用於當前項目)。如果我檢查他們,我可以按卸載按鈕卸載FSharp.Data(我沒有這樣做)。安裝按鈕什麼都不做。所以看起來我已經爲這個項目安裝了FSharp.Data v.2.3.2。我錯過了什麼? – Soldalma

+0

你可以編輯你的問題,並添加你的引用的屏幕截圖,也可能是你的fsproj文件的內容。或者只是使用新項目創建新解決方案,並按照答案中的步驟進行操作。 – s952163

+0

我想出了這個問題。對不起,這是一個愚蠢的錯誤。我正在使用.fsx文件,所以我必須按照您的建議發送到F#Interactive。令我困惑的是我沒有在F#Interactive窗口輸入代碼,而是通過編輯器在.fsx文件中輸入代碼。我知道我必須發送到F#Interactive才能在F#Interactive窗口中運行代碼,但我不知道在編輯.fsx文件時,Intellisense無法在編輯器上捕獲FSharp.Data。 – Soldalma