MonoNativeFunctionWrapperAttribute Class

Definition

Attribute to apply to delegates to flag them as targets that can be used with M:System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer*.

[System.AttributeUsage(System.AttributeTargets.Delegate)]
public sealed class MonoNativeFunctionWrapperAttribute : Attribute
type MonoNativeFunctionWrapperAttribute = class
    inherit Attribute
Inheritance
MonoNativeFunctionWrapperAttribute
Attributes

Remarks

Since MonoTouch runs in fully statically compiled mode, it is necessary to flag delegate methods that might be passed to the M: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.

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

Constructors

MonoNativeFunctionWrapperAttribute()

Default constructor.

Applies to