Parameters
Remarksmethod: method to invoke obJ: object instance params: arguments to the method exc: exception information.
Invokes the method represented by method on the object obj. obj is the 'this' pointer, it should be NULL for static methods, a MonoObject* for object instances and a pointer to the value type for value types. The params array contains the arguments to the method with the same convention: MonoObject* pointers for object instances and pointers to the value type otherwise.
From unmanaged code you'll usually use the mono_runtime_invoke() variant. Note that this function doesn't handle virtual methods for you, it will exec the exact method you pass: we still need to expose a function to lookup the derived class implementation of a virtual method (there are examples of this in the code, though).
You can pass NULL as the exc argument if you don't want to catch exceptions, otherwise, *exc will be set to the exception thrown, if any. if an exception is thrown, you can't use the MonoObject* result from the function.
If the method returns a value type, it is boxed in an object reference. If you want to invoke generic methods, you must call the method on the "inflated" class, which you can obtain from the mono_object_get_class()
Parameters
Remarksmethod: method to invoke obJ: object instance params: arguments to the method exc: exception information.
Invokes the method represented by method on the object obj. obj is the 'this' pointer, it should be NULL for static methods, a MonoObject* for object instances and a pointer to the value type for value types. The params array contains the arguments to the method with the same convention: MonoObject* pointers for object instances and pointers to the value type otherwise. The _invoke_array variant takes a C# object[] as the params argument (MonoArray *params): in this case the value types are boxed inside the respective reference representation.
From unmanaged code you'll usually use the mono_runtime_invoke() variant. Note that this function doesn't handle virtual methods for you, it will exec the exact method you pass: we still need to expose a function to lookup the derived class implementation of a virtual method (there are examples of this in the code, though).
You can pass NULL as the exc argument if you don't want to catch exceptions, otherwise, *exc will be set to the exception thrown, if any. if an exception is thrown, you can't use the MonoObject* result from the function.
If the method returns a value type, it is boxed in an object reference.
Parameters
Remarksdelegate: pointer to a delegate object. params: parameters for the delegate. exc: Pointer to the exception result.
Invokes the delegate method delegate with the parameters provided. You can pass NULL as the exc argument if you don't want to catch exceptions, otherwise, *exc will be set to the exception thrown, if any. if an exception is thrown, you can't use the MonoObject* result from the function.
Parameters
Remarksdesc: method description to be released
Releases the MonoMethodDesc object desc.
Parameters
Returnsname: the method name. include_namespace: whether the name includes a namespace or not.
a parsed representation of the method description.Remarks
Creates a method description for name, which conforms to the following specification: [namespace.]classname:methodname[(args...)] in all the loaded assemblies. Both classname and methodname can contain '*' which matches anything.
Remarks
Return the signature of the method M. On failure, returns NULL.
Parameters
Returnssig: the method signature inspected
TRUE if this the method signature sig has an explicit instance argument. FALSE otherwise.
Parameters
Returnssig: the method signature inspected
the call convention of the method signature sig.
Parameters
Returnssig: the method signature inspected
the number of parameters in the method signature sig.
Parameters
Returnssig: the method signature inspected iter: pointer to an iterator
the next parameter type of the method signature sig, NULL when finished.Remarks
Iterates over the parameters for the method signature sig. A void* pointer must be initualized to NULL to start the iteration and it's address is passed to this function repeteadly until it returns NULL.
Parameters
Returnssig: the method signature inspected
the return type of the method signature sig
Parameters
Returnssig: the method signature inspected
TRUE if this the method signature sig has an implicit first instance argument. FALSE otherwise.
Parameters
Returnssig: the method signature inspected
the number of the first vararg parameter in the method signature sig. -1 if this is not a vararg signature.