#import #import @implementation MyActor : NSObject - (void) invokeHandler: (id) handler bridge: (id) bridge { Class ArrayListClass = [bridge getClass: "System.Collections.ArrayList"]; id arraylist = [ArrayListClass initWithInt32:2]; [arraylist AddWithObject:self]; [arraylist AddWithObject:nil]; [handler DynamicInvokeWithObjectArray:[arraylist ToArray]]; } @end @implementation MyTarget : NSObject - (void) targetMethod: (id) sender args: (id) args { NSLog (@"I was invoked by a %s", [[sender className] cString]); } @end int main (void) { // Make Apple shut up [[NSAutoreleasePool alloc] init]; // Get the bridge and initialize it id bridge = [[ObjCSharpBridge alloc] init]; NSLog (@"Load bridge classes."); Class MyActorClass = [bridge getClass: "MyActor"]; Class MyTargetClass = [bridge getClass: "MyTarget"]; Class EventHandlerClass = [bridge getClass: "System.EventHandler"]; NSLog (@"Instantiate bridge classes."); id actor = [[MyActorClass alloc] init]; id target = [[MyTargetClass alloc] init]; NSLog (@"Call invoker."); [actor invokeHandler: [EventHandlerClass initWithTarget: target Selector: "targetMethod:args:"] bridge: bridge]; return 1; }