2016-11-04 40 views
4

我想使用LightningDB.net。其中一种方法接受参数作为枚举标志。F#枚举:预计有类型xxx,但这里有类型xxx

方法声明在C#:

Open(EnvironmentOpenFlags openFlags = EnvironmentOpenFlags.None, UnixAccessMode accessMode = UnixAccessMode.Default) 

当我为openFlags如参数:env.Open(EnvironmentOpenFlags.NoSync)我收到编译器错误:

 
error FS0001: This expression was expected to have type LightningDB.EnvironmentOpenFlags but here has type LightningDB.EnvironmentOpenFlags 

当我为第二个论点提供论据方法,它的工作原理:

env.Open(accessMode = UnixAccessMode.Default) 

任何combi包括试图将枚举转换为int然后返回总是导致编译器错误。

这是在VS 2015.任何想法可能会导致这种情况,以及如何解决?

+1

我会检查你不是以某种方式引用同一个DLL的两个不同版本 –

+0

我似乎并没有这样做,除此之外,如果是这样的话,错误会出现在第二个参数中,也是枚举标志类型,对不对? – Sumrak

+0

但是也许第二个Arg来自不同的dll –

回答

3

程序集曾经在项目中,一旦直接引用,第二次嵌入到另一个程序集中,从而导致错误。