F#错误类型'X'与类型'X'不兼容

use*_*833 8 c# f#

首先,我道歉.这篇文章可能有点过于模糊.我有一个问题,我无法在一个小的示例代码部分重现.这是我做的:

F#应用程序使用从XML架构(xsd.exe)生成的C#DOM.

DOM的实例在C#中创建,并从函数调用返回到F#应用程序.

实例(此处命名为type为'X')存储在af#record中,如下所示:

type Something = { Dom : X option }
Run Code Online (Sandbox Code Playgroud)

稍后在代码中我有这样的事情:

match myRecord.Dom with
| Some(dom) -> CSharpCode.Save( dom, filepath )  // error: Type 'X' not compatible with type 'X'
Run Code Online (Sandbox Code Playgroud)

所以基本上,我从C#获取Dom实例并将其传回.在上面的最后一行中,我收到标题中提到的错误消息:类型"X"与类型"X"不兼容.

我不知道我应该寻找什么,因为在我尝试重现这个的简单示例程序中,我从未遇到过这个错误.有任何想法吗?

Phi*_*l H 1

查看此故障排除页面,短语“与类型不兼容”似乎是在数值上下文中使用的,而不是在一般类型匹配中使用。

另一个猜测是您的代码示例有CSharpCode.Save( dom, filepath ), 但在 F# 函数参数中是用空格分隔而不是逗号分隔,所以我期望CSharpCode.Save dom filepath. 您的示例不会构建一个元组dom, filepath并尝试将其传递给 吗.Save?