2

FSharp.Data XmlProvider を使用しようとしています。サンプルによると、ネストされた型にアクセスし、それらの型のいずれかのパラメーターを受け取る関数を作成できます。 https://github.com/fsharp/FSharp.Data/blob/master/samples/library/XmlProvider.fsx (177 行目)

ただし、次のことをしようとすると:

type businessesT = XmlProvider<"Businesses.xml">
type businessT = businessesT.DomainTypes.Business
let testfunc (b:businessesT.DomainTypes.Business) = 
    b

実際にコンパイルしてから取得するまでは機能するようです

エラー FS0039: タイプ 'ビジネス' が定義されていません

更新: この問題は、FSharp.Data (XmlProvider.fsx) のサンプルで 205 行目の後に型エイリアスを追加することで再現できます。

type Rss = XmlProvider<"http://tomasp.net/blog/rss.aspx">
type test = Rss.DomainTypes.Channel

おかしいのは、printDiv関数を使ったサンプルが動いているということです...

4

2 に答える 2

0

これは、タイプ プロバイダーの読み込みに関する何らかの問題が原因である可能性が高く、コンパイラがタイプ プロバイダーの読み込みに失敗した場合、コンパイラはそれを実行できず、提供されたタイプなどBusinessは定義されません。

スクリプト ファイルで使用#rしていますか、それともプロジェクトの [参照の追加] で型プロバイダーを参照していますか? を使用している場合#rは、その行にエラー メッセージがあるかどうかを確認します。プロジェクトの場合、コンパイラが出力するその他のエラー メッセージを確認します。

タイププロバイダーが別の回答でロードに失敗する一般的な理由をいくつか挙げました。

于 2013-08-15T01:08:41.777 に答える