I just stumbled on a cool trick that I had to share. I wanted to dynamically find and call initialization code. This led me to the use of attributes. Of course, once we find our method, we need to call it by using Method.Invoke( object, object). The problem was that most of the initialization code didn't touch each other. As such, I wanted to wrap the calls into threads. However, thread targets usually have to take either no parameters or one object. However, Invoke requires 2 parameters. The solution ......