');

.NET Framework Connessione (base)

Esempio

Vedi gli altri esempi (di base) sopra.

using System.ComponentModel.Composition;
using System.ComponentModel.Composition.Hosting;

namespace Demo
{
    public static class Program
    {
        public static void Main()
        {
            using (var catalog = new ApplicationCatalog())
            using (var exportProvider = new CatalogExportProvider(catalog))
            using (var container = new CompositionContainer(exportProvider))
            {
                exportProvider.SourceProvider = container;

                UserWriter writer = new UserWriter();

                // at this point, writer's userProvider field is null
                container.ComposeParts(writer);

                // now, it should be non-null (or an exception will be thrown).
                writer.PrintAllUsers();
            }
        }
    }
}

Finché qualcosa nel percorso di ricerca dell'assembly dell'applicazione ha [Export(typeof(IUserProvider))] , l'importazione corrispondente di UserWriter sarà soddisfatta e gli utenti verranno stampati.

Altri tipi di cataloghi (ad esempio DirectoryCatalog ) possono essere utilizzati al posto di (o in aggiunta a) ApplicationCatalog , per cercare in altri luoghi le esportazioni che soddisfano le importazioni.