If you mean like ASP.NET, then you'll actually need an application host to host your AppDomain in which your executable runs. Once an AppDomain is created and your application is executed in it, you can't change the config settings. ASP.NET uses its ISAPI filter to host the CLR. When the ASP.NET application detects changes to the config file, the AppDomain is unloaded and the host recreates it. Also, if you're doing plug-ins, all you can specify is assemblies or types. Obviously, you cannot specify an instance (though serialized data could help create an instance). In either case - even if the plug-in was originally disposed - you need only re-instantiate the Type to create a new instance of your plug-in. Basically, don't store the objects in a collection - store the types and have a method that creates an instance from that type. For example, I wrote a custom configuration section that stores such types (like is common in many of .NET's configuration sections) and creates an instance of class that contains not only that collection of types but a static method that creates an object based on a friendly type name that I pass in (searching the collection for that name, creating the type, and returning the object to me). Basically, my section handler and configuration object act like the Windows registry when it comes to COM objects. One other option is to have a class that is initialized from the configuration object created from your configuration section handler that also watches the config file for changes (you can easily get the path to the .config file from AppDomain.SetupInformation.ConfigurationFile) and then uses similar code as the section handler to re-read the values into the object. It's a cluge, but it might be better than having to create a CLR host for your application (which can be either native or managed, BTW).
-----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----