4

我们可以在 F# 中嵌入互操作类型吗?

首先,我在参考资料中看不到这样做的选项。

其次,如果我在 C# 中嵌入类型,它会告诉我引用接口而不是具体类:

//DBEngine is the interface DBEngineClass is the concrete class

//if I dont embed the interop

//Valid
var dbe = new Microsoft.Office.Interop.Access.Dao.DBEngineClass();
//Valid
var dbe = new Microsoft.Office.Interop.Access.Dao.DBEngine();


//if I do embed the interop
//Invalid
var dbe = new Microsoft.Office.Interop.Access.Dao.DBEngineClass();
//Valid
var dbe = new Microsoft.Office.Interop.Access.Dao.DBEngine();

但是,F# 总是希望引用具体类。有没有解决的办法 ?

4

2 回答 2

2

Tao Liu 谈到了您必须从 F# 中完成的一些额外工作,以发现要在此处实例化的正确类。据我所知,没有办法嵌入互操作类型。我很高兴被证明是错误的。:)

于 2013-04-22T22:31:37.653 回答
1

也许我不明白你的问题,但这工作正常,参考 v14.0:

open Microsoft.Office.Interop.Access.Dao
let dbe = DBEngineClass() :> DBEngine
于 2013-04-22T22:09:51.797 回答