   [C#] Plugins
  Say you have a bunch of data, and you have multiple models you want to be able to pass the data into. Now say you have two versions of your app - 1 version lets the user pick which model to use, the other is locked to a particular model and hides from the user that multiple models even exist.How would you approach this? In C++ I guess each model could use a DLL, the restricted version could always load "model.dll" and the other version could have a config file telling it all the DLLs to load? Is it similar in C# and is this even the way you'd approach it? I don't want the restricted user able to change model by e.g changing a flag in a config file, there is a degree of security on that aspect...Thanks.   
  Rather than different DLLs, you could have different classes. You could then put one class definition inside the main app itself, and then the other ("plugin") classes in external DLLs (or just one DLL)..NET has handy reflection capabilities. Given an assembly - either the currently running one or an external DLL loaded with Assembly.LoadFile - you can dig out the class definitions using Assembly.GetTypes and create instances of them using Activator.CreateInstance.That way, you could ship the release version without the plugin DLLs, limiting it to the baked-in model.   ;  Good call on reflection - I've been working on C++ too much recently and it never crossed my mind!Thanks.   ;quick example