私は C# から C を呼び出す InteralCall メソッドを使用しています。これは、ここに示されているサンプルのようなものですが、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 を使用してそれを行うことができるかどうか興味があります。
ありがとう!