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 に答える