MonoMac.MonoNativeFunctionWrapperAttribute Class
Attribute to apply to delegates to flag them as targets that can be used with System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer.

See Also: MonoNativeFunctionWrapperAttribute Members

Syntax

[System.AttributeUsage(System.AttributeTargets.Delegate)]
public class MonoNativeFunctionWrapperAttribute : Attribute

Remarks

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);
}
	

Requirements

Namespace: MonoMac
Assembly: XamMac (in XamMac.dll)
Assembly Versions: 0.0.0.0