See Also: RegisterAttribute Members
While all classes derived from the Foundation.NSObject class are exposed to the Objective-C world, in some cases you might want to expose the class using a different name to the runtime.
In addition, if you want your classes to be avaialble on the iOS designer, you need to annotate those classes with the Register attribute.
c# Example
// This class is never surfaced to Objective-C's runtime class NotSurfaced {} // This class is automatically surfaced to Objective-C's // runtime, since it is a subclass of NSObject, and it // is visible by the Objective-C runtime as "AutomaticallySurfaced" class AutomaticallySurfaced : NSObject {} // This class is surfaced to the Objective-C runtime with // the name 'MyName' [Register ("MyName")] class InternalName : NSObject {}
c# Example
// This UIView is surfaced to the iOS designer. [Register] public class MyView : UIView { public MyView (IntPtr handle) : base (handle) {} public MyView (CGRect rect) : base (rect) {} }