4
我们可以在F#中嵌入互操作类型吗?在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#一直想拥有的具体类的引用。 有没有办法解决这个问题?
确实如此,但您仍然指示二进制文件实际绑定到版本v14.0特定的类。 COM有这种接口的概念,现在显然在C#中语言层面出现。这就是为什么你可以新建一个界面! – nicolas 2013-04-23 13:48:02
这个想法是,我不在乎哪个客户端库将实现接口。我将这种通用性推向了负责遵守它的运行时。 – nicolas 2013-04-23 13:49:04