Il Managed Extensibility Framework (MEF) è in grado di caricare le dipendenze e i tipi attraverso molteplici Catalog, dove può fare riferimento per cercare le definizioni, ma qualora non si trovi quello adatto alle proprie esigenze è possibile crearne di personalizzati.
Abbinando al DirectoryCatalog un FileSystemWatcher, è possibile ottenere un nuovo Catalog che, sfruttando la Recomposition, consente di monitorare la directory in cui sono archiviate le Parts e rilavarne la presenza di nuove, inserendole nel container in fase di avvio (comportamento predefinito del DirectoryCatalog) e anche a runtime, ad ogni modifica della cartella.
public class MonitoredDirectoryCatalog : DirectoryCatalog
{
private FileSystemWatcher monitor;
// costruttore base cerca solo file dll, formato standard
public MonitoredDirectoryCatalog(string path) : base(path, "*.dll")
{
monitor = new FileSystemWatcher(path);
monitor.Changed += new FileSystemEventHandler(monitor_Changed);
monitor.EnableRaisingEvents = true;
}
// costruttore base cerca in base al filter personalizzato
public MonitoredDirectoryCatalog(string path, string filter) : base(path, filter)
{
monitor = new FileSystemWatcher(path);
monitor.Filter = filter;
monitor.Changed += new FileSystemEventHandler(monitor_Changed);
monitor.EnableRaisingEvents = true;
}
void monitor_Changed(object sender, FileSystemEventArgs e)
{
this.Refresh();
}
}Nello script si mostra, quindi, come creare un MonitoredDirectoryCatalog che, intercettando l'evento Changed della classe FileSystemWatcher, aggiorna il catalogo ricomponendo le Parts.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzo delle stepped value functions nel CSS
Gestire il routing HTTP in Azure Container App
Ridurre il reflow cambiando il CSS
Integrare LLM alle nostre applicazioni in .NET con MCP
Rendere affidabile lo scale out su Azure App Service
Controllare la telemetria con .NET Aspire
Supporto nativo a JSON in SQL Server 2025
Importare un servizio esterno in .NET Aspire
Response streaming con Blazor e .NET 10
Nuova modale riconnessione Blazor
Eliminare record doppi in Sql Server
Supportare la crittografia di ASP.NET Core con Azure Container App




