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
Integrare email esterne con Azure Functions e Managed Connectors
Usare i generics di C# con la clausola nameof in modo semplificato
Usare Microsoft-Decision-1 di AI Foundry per ottenere risposte decisionali strutturate
Utilizzare il Null conditional assignment di C# 14
Microsoft Fabric: la piattaforma unificata per l'ecosistema dati moderno
Impostare automaticamente l'altezza del font tramite CSS
Impostare la content-visibility in CSS per ottimizare il rendering iniziale di una pagina
Mischiare codice server side e client side in una query LINQ con Entity Framework
Supporto nativo a JSON in SQL Server 2025
Usare il metodo nameof con un tipo generico in C# 14
Integrare il Docker Model Runner in un workflow di GitHub
Evidenziare una porzione di testo in un pagina dopo una navigazione
I più letti di oggi
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- "GitHub Copilot e .NET: progettare un repository per lo sviluppo agentico" con Cristian Civera. Ti aspettiamo alla .NET Conference Italia 2026, il 18 novembre a Milano. Evento gratuito con registrazione. #dotnet #GitHubCopilot https://aspit.co/netconf-26
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!


