|C#||Visual Basic||Visual C++|
Managed implementation of the blocks as defined in the Language Specification for Blocks. Even if the implementation strictly follows the Block Implementation Specification, it is restricted to global block for the moment.
The block bridging allow a delegate function or action to be marshalled as a native block. Its implementation points to a proxy invoker that will forward the native block invocation to the delegate function or action.
Currently, any delegate can be passed to create a block. For example:
 Language Specification for Blocks (http://clang.llvm.org/docs/BlockLanguageSpec.txt)
 Block Implementation Specification (http://clang.llvm.org/docs/BlockImplementation.txt)
Represents a managed wrapper around an Objective-C Class definition.
Marks a method as an action for Interface Builder.
Marks a property as an outlet for Interface Builder.
This type represents a native object in the Objective-C runtime and is referenced through a memory pointer.
For each managed instance is associated a native pointer that allows a two-way messaging between the .NET and the Objective-C runtime.
Extensions methods for Id class, that are null friendly (i.e. a call on a null reference returns.
Custom marshaller for Id instances. This makes interop a breeze as it cuts a lot of code.
Interface to identity classes or interfaces that can act as a managed wrapper.
Very basic logger that handles four levels of log.
The levels are set through an environment variable MONOBJC_LOG_LEVEL. Output logs are printed in a Terminal console.
The levels are :
Enumeration that holds hexadecimal values for MacOS system version.
Allows a .NET class containing extension methods to be registered within the Objective-C runtime.
The extension methods are added as instance methods to the targeted class.
Exception raised if a category mapping failed.
Allows a .NET class to be registered within the Objective-C runtime.
All the ascendant classes in the inheritance hierarchy must have a ObjectiveCClassAttribute attribute, otherwise the runtime will not be able to use it.
Exception raised if a dynamic class cast failed.
Exception raised if a class mapping failed.
Exception raised if a dynamic code generation failed.
Utility class to handle encoding of types and methods.
Exception raised if a something failed inside the bridge.
Marks an assembly as a Mac OS X framework.
Exposes a field to the Objective-C runtime, so it can be manipulated from the runtime.
When the tagged type (with the ObjectiveCClassAttribute) is registered in the Objective-C runtime, all the tagged fields will be exported, which means they will be accessible from native classes.
Allows a method to be exported as part of a native class within the Objective-C runtime.
When the tagged type (with the ObjectiveCClassAttribute) is registered in the Objective-C runtime, all the tagged methods will be exported, which means they will be callable from native classes or instances.
Exception raised if a message passing failed.
Allows a .NET interface to be registered within the Objective-C runtime.
When a native instance is returned, the Objective-C runtime provides a wrapper that allows calls to the native instance through the methods of the interface.
Entry point of the .NET/Objective-C bridge.
The runtime is responsible for:
A lot of magic occurs behind the scene to ensure that managed type and instances are seen as native in the Objective-C runtime.
Used to define the underlying native type for a managed type.
This is needed in order to map types that can be dependent on the platform's bitness.
Contains extension methods to ease the selector transformations.