plugins

To start with, take the following three code snipits and compile them as shown in the comments. The code should be commented enough to follow (I hope). (note: the very bottom has output)
MyPlugIn.cs
With Line Numbers and Without Line Numbers

MPIGrandmother.cs
With Line Numbers and Without Line Numbers

PlugInTester.cs
With Line Numbers and Without Line Numbers


Now, you can try these other plugins which illustrate additional functionality.

MPIMathMajor.cs
With Line Numbers and Without Line Numbers

MPIPhilosopher.cs
With Line Numbers and Without Line Numbers

MPIPsychiatrist.cs
With Line Numbers and Without Line Numbers

For those with little patience, here is the output from a full set:

Loading DLL 'MPIGrandmother.dll'
    MPIGrandmother says:    Yummy pastry crust with steaming hot filling.
Loading DLL 'MPIMathMajor.dll'
    MPIGrandmother says:    3.14159265358979
Loading DLL 'MPIPhilosopher.dll'
    MPINihilist says:    Who cares?
    MPISolipsist is not derived from PlugInForm
        Int32 GetHashCode() has no parameters so I will run it.
            9
        Boolean Equals(System.Object) has parameters so I will NOT run it.
        System.String ToString() has no parameters so I will run it.
            MPISolipsist
        Void WhatIsPI() has no parameters so I will run it.
            PI is Mine.
        System.Type GetType() has no parameters so I will run it.
            MPISolipsist
Loading DLL 'MPIPsychiatrist.dll'
    MPIFreud says:    You desire your mother don't you?
    MPIJung says:    Why do you think you asked that question?