2009-08-20 7 views
2

Dans mon projet, j'ai un assembly qui définit un ensemble de contrôles WPF. Je veux être capable de les utiliser sans référencer explicitement l'assembly dans le code XAML. C'est pourquoi j'utilise XmlnsDefinition personnalisé:XmlnsDefinition personnalisée avec le mélange

[assembly: XmlnsDefinition(
    "http://schemas.microsoft.com/winfx/2006/xaml/presentation", 
    "MyProject.Common.WpfLibrary.Markup")] 
[assembly: XmlnsDefinition(
    "http://schemas.microsoft.com/winfx/2007/xaml/presentation", 
    "MyProject.Common.WpfLibrary.Markup")] 
[assembly: XmlnsDefinition(
    "http://schemas.microsoft.com/winfx/2008/xaml/presentation", 
    "MyProject.Common.WpfLibrary.Markup")] 

Cela fonctionne comme un charme dans VS2008. Je peux utiliser directement les contrôles définis dans l'espace de noms Markup. Cependant Blend ne semble pas aimer, et donne mon "XAML invalide" erreur partout où j'essaie d'utiliser un contrôle.

Avez-vous une solution de contournement?

Répondre

1

Vous ne devez utiliser XmlnsDefinitionAttribute qu'une seule fois pour chaque espace de noms CLR dans un assembly. Utilisez XmlnsCompatibleWithAttribute pour les 2ème et 3ème assignations.

Questions connexes