我正在使用一些Interop代码,需要实例化一个接口.
C#中的等价物是:
Interop.SomeInterface theInterface;
theInterface = new Interop.SomeInterface();
theInterface.SomeEvent += new SomeEventHandler(...);
Run Code Online (Sandbox Code Playgroud)
如何在F#中实现此接口的实例化?我是否需要将此互操作dll重新包装成F#可以理解的内容?
实例化接口是不可能的.C#编译器通过查找接口的实现者来实例化一个类.这是由编译器检查完成的CoClassAttribute
.
据我所知,F#对此一无所知CoClassAttribute
,因此您需要更改代码,以便实例化实际的类,而不是接口.
您可以通过使用Reflector,ILdasm或任何其他元数据检查器查看SomeInterface上的CoClassAttribute来找出所需的类.如果使用tlbimp或visual studio生成interop包装器,通常该类将按照约定命名为SomeInterfaceClass.
归档时间: |
|
查看次数: |
162 次 |
最近记录: |