我加载了一个程序集,并从中加载了我想要创建的对象的一个类。从那个类中我检查接口(mono_class_get_interfaces)并找到我想要的接口类(IDispose)。
我使用mono_object_new创建对象,然后直接调用mono_runtime_object_init。然后我调用mono_object_castclass_mbyref将对象转换为接口引用。然后我使用mono_class_get_method_from_name从接口类中检索我想调用的接口方法(Dispose)。
我调用mono_object_get_virtual_method以确保我有正确的实现,然后尝试使用接口MonoObject * 引用和接口虚拟方法MonoMethod * (args = NULL) ->使用mono_runtime_invoke调用它,但这是不成功的。
我也尝试使用相同的参数调用mono_method_get_unmanaged_thunk,但这也不起作用。
在这两种情况下,我都会为异常参数返回一个值。问题是,我还没有找到查看异常内部的方法......
问题是:
- 调用顺序是否正确以使用托管接口并调用正确的(最具体的)接口方法?
- 如何获取有关MonoException的更多信息(我假设调用返回的MonoObject * 是MonoException实例)?