F# 互操作DLL的实例化接口

F# 互操作DLL的实例化接口,f#,F#,我正在使用一些互操作代码,需要实例化一个接口 C#中的等价物是: Interop.SomeInterface接口; theInterface=newinterop.SomeInterface(); theInterface.SomeEvent+=新的SomeEventHandler(…); 如何在F#中实例化此接口?我是否需要将这个互操作dll重新包装成F#可以理解的东西?不可能实例化接口。通过查找接口的实现者来实例化类。这是由编译器检查 据我所知,F#对CoClassAttribute一无所

我正在使用一些互操作代码,需要实例化一个接口

C#中的等价物是:

Interop.SomeInterface接口;
theInterface=newinterop.SomeInterface();
theInterface.SomeEvent+=新的SomeEventHandler(…);

如何在F#中实例化此接口?我是否需要将这个互操作dll重新包装成F#可以理解的东西?

不可能实例化接口。通过查找接口的实现者来实例化类。这是由编译器检查

据我所知,F#对
CoClassAttribute
一无所知,因此需要更改代码,使其实例化实际的类,而不是接口


您可以通过使用Reflector、ILdasm或任何其他元数据检查器查看SomeInterface上的CoClassAttribute来确定所需的类。如果interop包装器是使用tlbimp或visual studio生成的,则该类通常会按照约定命名为SomeInterfaceClass。

这是非常正确的。非常感谢。