# System.Runtime.InteropServices.ObjectiveC

``` diff
+namespace System.Runtime.InteropServices.ObjectiveC {
+    public static class ObjectiveCMarshal {
+        public static GCHandle CreateReferenceTrackingHandle(object obj, out Span<IntPtr> taggedMemory);
+        public unsafe static void Initialize(function void () beginEndCallback, function int (IntPtr) isReferencedCallback, function void (IntPtr) trackedObjectEnteredFinalization, ObjectiveCMarshal.UnhandledExceptionPropagationHandler unhandledExceptionPropagationHandler);
+        public static void SetMessageSendCallback(ObjectiveCMarshal.MessageSendFunction msgSendFunction, IntPtr func);
+        public static void SetMessageSendPendingException(Exception exception);
+        public enum MessageSendFunction {
+            MsgSend = 0,
+            MsgSendFpret = 1,
+            MsgSendStret = 2,
+            MsgSendSuper = 3,
+            MsgSendSuperStret = 4,
+        }
+        public unsafe delegate function void (IntPtr) UnhandledExceptionPropagationHandler(Exception exception, RuntimeMethodHandle lastMethod, out IntPtr context);
+    }
+    public sealed class ObjectiveCTrackedTypeAttribute : Attribute {
+        public ObjectiveCTrackedTypeAttribute();
+    }
+}
```

