gpt4 book ai didi

mono - MonoType 是否与 C# 的类型相关(如 typeof)

转载 作者:行者123 更新时间:2023-12-04 04:37:25 24 4
gpt4 key购买 nike

我正在使用从 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# 的类型转换为 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*,您可以在调用 mono_reflection_type_get_type () 的大部分嵌入 API 中使用。

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

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com