do more with less
news, esperienze, esempi da condividere e qualcosa su di me

lunedì 4 ottobre 2010

ResourceDictionary: referenziare un namespace dello stesso assembly in xaml

L’aggiunta o la rimozione di un attributo fa spesso la differenza. Il problema è saperlo a priori per non perdere troppo tempo nella risoluzione di errori di questo tipo:

The tag 'LocalizeKey' does not exist in XML namespace
'clr-namespace:Knodev.Composite.Client.Core.MarkupExtensions.Globalization; assembly=Knodev.Composite.Client'.

Sebbene il namespace indicato soprà ci sembri correttamente referenziato dobbiamo ricordarci che, se il namespace da referenziare è contenuto nello stesso assembly del ResourceDictionary in cui lo stiamo referenziando, allora non dobbiamo specificare il valore dell’attributo assembly. Quindi per risolvere l’eccezione che ci viene sollevata in fase di eccezione basterà modificare la dichiarazione del namespace da:

xmlns:global="clr-namespace:Knodev.Composite.Client.Core.MarkupExtensions.Globalization;assembly=Knodev.Composite.Client"

a:

xmlns:global="clr-namespace:Knodev.Composite.Client.Core.MarkupExtensions.Globalization"