mono - MonoType 与 C# 的 Type 相关吗(如 typeof)

标签 mono embedded

我正在使用从 C# 调用 C 的 InteralCall 方法,类似于给出的示例 here但我传入一个 Type 对象。

class Hello {
        [MethodImplAttribute(MethodImplOptions.InternalCall)]
        extern static void Sample (Type t);
}

因此,在我的 C 代码中,我通常使用 MonoObject 来接收 C# 对象。我想将其转换或转换为 MonoClass* 或 MonoType*,这样我就可以稍后开始调用 mono_object_new() 并创建许多对象。当然,如果我使用 mono_object_get_class 我会得到实际 Type 类的类。我需要将 C# 的 Type 转换为 MonoClass* 的东西。

static void Sample (MonoObject* t) 
        {
                // I want to convert the MonoObject* argument to a MonoClass*
        }

我的代码有点复杂,但这说明了我正在尝试做的事情。我可以创建一个虚拟对象并传递它,并使用 mono_object_get_class() 获取该类,但我很好奇是否可以使用 Type 来做到这一点。

谢谢!

最佳答案

表示 C# System.Type 的 C 类型是 MonoReflectionType*(仍然是 MonoObject*)。

要获取 MonoType*,您可以在嵌入 API 的大部分其余部分中调用 mono_reflection_type_get_type ()。

MonoType* 指针类似于 C# 领域中的 TypeHandle。

关于mono - MonoType 与 C# 的 Type 相关吗(如 typeof),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19507383/

相关文章:

c# - Mono 中用于跨平台应用程序的应用程序图标

c - 灵活的数组成员访问 union 原始字节

C# HttpListener 在 SSL 上完全失败

linux - 如何在 Linux 下调试 F#/Nemerle mono 应用程序?

c# - 适用于 .NET/Winforms 的完全托管文本编辑器组件

c# - Directory.GetCurrentDirectory() 不适用于 Linux?

c - 嵌入式程序中需要说明一段代码

embedded - open ("/dev/i2c-1",O_RDWR) 返回-1, i2c-1 设备无法打开

c - ASF4 Microchip API定时器驱动复位函数

c - 初始化静态常量数组