C# (CSharp) Monobjc Namespace

Nested Namespaces

Monobjc.AVFoundation
Monobjc.AVKit
Monobjc.Accounts
Monobjc.AddressBook
Monobjc.AppKit
Monobjc.ApplicationServices
Monobjc.Collaboration
Monobjc.CoreData
Monobjc.CoreLocation
Monobjc.CoreMIDI
Monobjc.CoreMedia
Monobjc.CorePlot
Monobjc.CoreWLAN
Monobjc.DiscRecording
Monobjc.DiscRecordingUI
Monobjc.Dynamic
Monobjc.EventKit
Monobjc.Foundation
Monobjc.GLKit
Monobjc.GameController
Monobjc.GameKit
Monobjc.Generators
Monobjc.Growl
Monobjc.InputMethodKit
Monobjc.InstantMessage
Monobjc.Kernel
Monobjc.MSBuild
Monobjc.MapKit
Monobjc.NAnt
Monobjc.OpenGL
Monobjc.Properties
Monobjc.QTKit
Monobjc.Quartz
Monobjc.QuartzCore
Monobjc.Runtime
Monobjc.SceneKit
Monobjc.ScriptingBridge
Monobjc.Sdp
Monobjc.Security
Monobjc.SecurityFoundation
Monobjc.SecurityInterface
Monobjc.Social
Monobjc.Sparkle
Monobjc.StoreKit
Monobjc.Tools
Monobjc.Types
Monobjc.Utils
Monobjc.WebKit

Classes

Name Description
Block

Managed implementation of the blocks as defined in the Language Specification for Blocks[1]. Even if the implementation strictly follows the Block Implementation Specification[2], 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:

Delegate Equivalent block signature Action void (^)() Action{T1,T2,T3} void (^)(T1, T2, T3) Func{TResult} TResult (^)() Func{T1,T2,TResult} TResult (^)(T1, T2)

[1] Language Specification for Blocks (http://clang.llvm.org/docs/BlockLanguageSpec.html)

[2] Block Implementation Specification (http://clang.llvm.org/docs/Block-ABI-Apple.html)

BlockMarshaler Custom marshaller for Block instances. This makes interop a breeze as it cuts a lot of code.
BlockTests
CategoriesMessagingTests
Class
ClassLookupTests
ClassesIVarTests
ClassesMessagingTests
EncodingBasicTests
EncodingGenerationTests
EncodingGenerationTests.TestClassForMethodWithReturnType Test class for selector string and encoding
EncodingGenerationTests.TestClassForMethodWithoutReturnType Test class for selector string and encoding
FrameworkLoadingTests
IVarTest01
IVarTest02
IVarTest03
IVarTest04
InheritanceTest01
InheritanceTest02
InheritanceTest03
InheritanceTests
Logger

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 :

LevelAssociated Output DEBUG (MONOBJC_LOG_LEVEL >= debug)Low-level log (class registration, proxy creation, messaging, etc.). Beware that this level will slow down the execution. INFO (MONOBJC_LOG_LEVEL >= info)Output informationnal log (bridge starting, architectre and runtime selection, statistics, etc.). Beware that this level may slow down the execution. WARN (MONOBJC_LOG_LEVEL >= warning)Output warning log. There is no noticeable impact ERROR (MONOBJC_LOG_LEVEL >= error)Output error log. There is no noticeable impact
MessageTest01
MessageTest02
MessagingTests
NSArray_Retrieve
NSObject_Exceptions
NSObject_Retrieve
NSString_Retrieve
NativeMethods

Exports native methods exposed in libobjc.dylib shared library.

Thanks to .NET P/Invoke system, most of the marshalling work is automatic.

The following methods are safe for use on both Mac OS X 10.4 and later.

ObjectiveCCategoryAttribute
ObjectiveCCategoryMappingException
ObjectiveCClassAttribute
ObjectiveCClassCastException
ObjectiveCClassMappingException
ObjectiveCCodeGenerationException
ObjectiveCEncoding

Utility class to handle encoding of types and methods.

ObjectiveCException
ObjectiveCFrameworkAttribute
ObjectiveCIVarAttribute
ObjectiveCMessageAttribute
ObjectiveCMessagingException
ObjectiveCProtocolAttribute
ObjectiveCRuntime
ObjectiveCUnderlyingTypeAttribute
RuntimeTests
SelectorExtensions

Contains extension methods to ease the selector transformations.

SelectorTests
SymbolTests
WrapperMessagingTests
WrapperTest01