【发布时间】:2014-10-08 09:07:13
【问题描述】:
我加载了一个程序集,并从中加载了我想要创建的对象的一个类。从那个类中,我检查接口 (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 以确保我有正确的实现,然后尝试使用 mono_runtime_invoke 调用它使用接口 MonoObject * 参考和接口虚方法 MonoMethod * (args = NULL) -> 这是不成功。
我也尝试使用相同的参数调用 mono_method_get_unmanaged_thunk,但这也不起作用。
在这两种情况下,我都会为异常参数返回一个值。问题是,我还没有找到查看异常内部的方法...
问题是:
- 调用顺序是否正确,可以使用托管接口并调用正确(最具体的)接口方法?
- 如何获取有关 MonoException 的更多信息(我假设调用返回的 MonoObject * 是MonoException 实例)?
【问题讨论】:
标签: interface mono mono-embedding