Mono 是与C#和#x27有关的单型;s类型(如typeof中的)

Mono 是与C#和#x27有关的单型;s类型(如typeof中的),mono,embedded,Mono,Embedded,我使用的是从C#调用C的InteralCall方法,类似于给定的示例,但我传入了一个类型对象 class Hello { [MethodImplAttribute(MethodImplOptions.InternalCall)] extern static void Sample (Type t); } 所以在我的C代码中,我通常使用MonoObject来接收C对象。我想将其转换或强制转换为MonoClass*或MonoType*,以便以后可以开始调用mono_

我使用的是从C#调用C的InteralCall方法,类似于给定的示例,但我传入了一个类型对象

class Hello {
        [MethodImplAttribute(MethodImplOptions.InternalCall)]
        extern static void Sample (Type t);
}
所以在我的C代码中,我通常使用MonoObject来接收C对象。我想将其转换或强制转换为MonoClass*或MonoType*,以便以后可以开始调用mono_object_new(),并创建许多对象。当然,如果我使用mono\u object\u get\u类,我会得到实际类型类的类。我需要一些能把C#的类型转换成单类*的东西

static void Sample (MonoObject* t) 
        {
                // I want to convert the MonoObject* argument to a MonoClass*
        }
我的代码有点复杂,但这说明了我正在尝试做什么。我可以创建一个虚拟对象并传递它,然后使用mono_object_get_class()获取类,但我很好奇是否可以使用Type来实现


谢谢

表示C#系统的C类型。类型是MonoReflectionType*(仍然是MonoObject*)

要获得MonoType*,可以在调用mono\u reflection\u type\u get\u type()的嵌入API的其余大部分中使用它


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

太棒了!谢谢你的澄清。我会试一试,然后再报告。