iOS Guides | Samples

ObjCRuntime.MonoNativeFunctionWrapperAttribute Class

Attribute to apply to delegates to flag them as targets that can be used with Marshal.GetDelegateForFunctionPointer.

See Also: MonoNativeFunctionWrapperAttribute

Syntax

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

Remarks

Since MonoTouch runs in fully statically compiled mode, it is necessary to flag delegate methods that might be passed to the 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: ObjCRuntime
Assembly: Xamarin.iOS (in Xamarin.iOS.dll)
Assembly Versions: 0.0.0.0

The members of ObjCRuntime.MonoNativeFunctionWrapperAttribute are listed below.

See Also: Attribute

Public Constructors