Nel markup, l'utilizzo di controlli e di oggetti esterni al progetto corrente richiede la registrazione del namespace XML attraverso la direttiva xmlns.
Con l'aumentare della complessità del progetto le registrazioni dei vari namespace possono affollare il markup dello UserControl, diminuendo la leggibilità, aumentando il peso in termini di KB dello XAML e incrementando la possibilità di errori, dovuti a registrazioni con chiavi diverse per le stesse librerie.
In Silverlight, con gli attributi XmlnsPrefix e XmlnsDefinition abbiamo la possibilità di registrare un namespace XML personalizzato che identifichi una serie di librerie, anzichè un solo assembly e namespace .NET.
Per il loro utilizzo è necessario inserire manualmente le dichiarazioni:
[assembly: XmlnsPrefix("http://schemas.silverlightitalia.com/library", "library")] [assembly: XmlnsDefinition("http://schemas.silverlightitalia.com/library", "SilverlightItalia.Library")]
nei file AssemblyInfo.cs che si trovano all'interno della cartella Properties sia del progetto e della libreria.
Nel secondo attributo di XmlnsDefinition andiamo a specificare il namespace .NET a cui si deve riferire lo schema.
Con questi attributi possiamo specificare, come di consueto, il namespace XML nel markup, utilizzando come valore lo schema specificato.
<UserControl x:Class="SilverlightItalia._129.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:library="http://schemas.silverlightitalia.com/library"> <library:MyControl /> </UserControl>
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Generare velocemente pagine CRUD in Blazor con QuickGrid
Ottimizzazione dei block template in Angular 17
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Creare una custom property in GitHub
Evitare il flickering dei componenti nel prerender di Blazor 8
Paginare i risultati con QuickGrid in Blazor
Assegnare un valore di default a un parametro di una lambda in C#
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
Creazione di componenti personalizzati in React.js con Tailwind CSS
Hosting di componenti WebAssembly in un'applicazione Blazor static