2016-11-04 39 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

程序集曾經在項目中,一旦直接引用,第二次嵌入到另一個程序集中,從而導致錯誤。