See Also: MonoNativeFunctionWrapperAttribute Members
Since MonoMac runs in fully statically compiled mode, it is necessary to flag delegate methods that might be passed to the System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer with this attribute. This instructs the AOT compiler to generate the necessary code to allow a pointer to a native function to produce a C# callable delegate for the method.
C# Example
[MonoNativeFunctionWrapper]
delegate void SomeDelegate (int a, int b);
//
// the ptrToFunc points to an unmanaged C function with the signature (int a, int b)
void Callback (IntPtr ptrToFunc)
{
var del = (SomeDelegate) Marshal.GetDelegateForFunctionPointer (ptrToFunc, typeof (SomeDelegate));
// invoke it
del (1, 2);
}