Assembly Load Contexts Subtleties

March 6, 2007

The .NET framework offers a rich variety of APIs for loading and executing code in a dynamic fashion.  I'd like to focus on Assembly.Load and Assembly.LoadFrom, the .NET Reflection APIs for dynamically loading an assembly for inspection and execution.  These are especially useful for plug-in architectures, where the design is usually similar to the following:   A main host manager is written, which provides basic hosting services and means for discovering the plug-ins. A shared interface is defined for all plug-ins to implement.  This interface serves as the contract between the host manager and the plug-in assemblies. Plug-in assemblies are developed,...