.NET Framework Conectando (Básico)


Ejemplo

Vea los otros ejemplos (básicos) de arriba.

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();
            }
        }
    }
}

Siempre que algo en la ruta de búsqueda del ensamblaje de la aplicación tenga [Export(typeof(IUserProvider))] , la importación correspondiente del UserWriter cumplirá y los usuarios se imprimirán.

Se pueden usar otros tipos de catálogos (por ejemplo, DirectoryCatalog ) en lugar de (o además de) ApplicationCatalog , para buscar en otros lugares las exportaciones que satisfacen las importaciones.