我在创建一个F#脚本文件的签名文件时遇到了错误,但我还没有完全弄清楚。
要复制,请创建一个新的F#类库并添加一个文件Test.fs:
namespace Signatures
open System
type Test (id : Guid, name : string) =
member this.Id = id
member this.Name = name
这个可以顺利构建。然后在其上面创建一个新的签名文件 Test.fsi:
namespace Signatures
open System
type Test =
new : (Guid * String) -> Test
member Id : Guid
member Name : String
这将无法构建,因为出现了错误
模块“Signatures”要求值“new:(Guid * String) -> Test”
(这与两个文件中构造函数签名不同的错误不同)。我能找到关于在签名文件中定义构造函数的唯一真正文档是MSDN,其中只提到无参数的构造函数。
如果您在.fs文件中悬停在Test上,则构造函数的签名与.fsi文件中的构造函数的签名相匹配。我还尝试更改构造函数,使其不是隐式的,但是没有成功。
我正在使用VS2012 RC,并尝试过.NET 4和4.5。
--sig
编译器标志来查看对应于F#源文件的签名,但这并不完全符合您的要求。 - kvb