I have to agree with Tony, but there is a bizarre solution that probably isn?t worth the overhead. You could always use message queuing (MSMQ) in the following manner:
1. Class A sends ?xyzzy? to a private queue.
2. Class B peeks the queue and sees ?xyzzy?.
3. Class C receives ?xyzzy? and sends ?plugh?.
All you need to do is remember that receive is a destructive read and peek only shows the next item pending in the queue. Unless you?re dealing with a multi-threaded application this would work, but it probably isn?t worth the effort. Also, instead of a string why not create an instance of a String and pass it around?