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
Combinare Container Queries e Media Queries
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Gestione dell'annidamento delle regole dei layer in CSS
Ottimizzare le performance usando Span<T> e il metodo Split
Ordine e importanza per @layer in CSS
Ottenere un token di accesso per una GitHub App
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Supportare la sessione affinity di Azure App Service con Application Gateway
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Recuperare App Service cancellati su Azure
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
I più letti di oggi
- 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!
- .NET Conference Italia 2024 - Milano
- 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!
- Utilizzare il pattern matching per semplificare le espressioni