When a modular app loads it usually looks for the associated composition modules and does so by dynamic discovery. This process usually requires at least two definitions: what to look for and where to look for it. The what is defined by an interface ICompositionModulewhilst the where in .NET case is the list of assemblies available for the app. There may be certain rules or conventions as to what are the exact assemblies to be discovered and inspected for app components. The existing discovery aspect answers the where question:
After we answer the where question we are ready to inspect the list of assemblies and answer the what question to get the list of composition modules ready to be registered into the app dependency registrator: