This post originated from an RSS feed registered with .NET Buzz
by -.
Original Post: XAML: Eigenen XML-Namespace erstellen
Feed Title: Norbert Eder - Living .NET
Feed URL: http://feeds.feedburner.com/NorbertEder-Livingnet
Feed Description: Copyright (c)2005, 2006 by Norbert Eder
Wer bereits etwas mit WPF gemacht hat, wird den WPF und den XAML Namespace kennen. Beide werden automatisch beim Erstellen eines Elementes in das vordefinierte XAML eingetragen.
Zum Einen stehen uns darüber alle möglichen WPF-Elemente zur Verfügung, als auch ein paar XAML-Erweiterungen (Präfix x:) für das Erstellen von Arrays, Inline-Code, Typenangaben usw.
Wer nun eigene Elemente einbinden möchte, greift für gewöhnlich auf einen CLR-Namespace zurück:
Wurden nun jedoch zahlreiche Elemente entwickelt, liegen diese in unterschiedlichen Namespaces und sollen viele davon in einem Window verwendet werden, entsteht eine nette Liste von CLR-Namespace-Definitionen. Viel einfacher geht dies über die Erstellung eines eigenen XML-Namespaces.
Hierfür kann das Attribute XmlnDefinition verwendet werden. Dieses wird in der AssemblyInfo.cs definiert und sieht so aus:
Was wird hier gemacht? Der erste Parameter definiert den Wert des eigenen XML-Namespaces, der zweite Parameter gibt an, welcher CLR-Namespace in zum XML-Namespace hinzugefügt werden soll. Dies kann nun für mehere CLR-Namespaces gemacht werden.
Schlussendlich kann darauf nun folgendermaßen zugegriffen werden:
xmlns:local="http://www.norberteder.com/2008/wpf"
Es werden nun sämtliche CLR-Namespaces eingebunden, welche unter dem XML-Namespace zusammengefasst wurden. Dies fördert die Übersichtlichkeit und vermindert Fehler. Allerdings muss dies auch entsprechend gewartet werden und kann aufwendiger werden, wenn zig unterschiedliche Assemblies ins Spiel kommen.
Hinweis: Wird in der aktuellen Assembly ein XML-Namespace definiert, kann dieser nicht verwendet werden. Dies funktioniert nur, wenn eine Assembly mit einem definierten XML-Namespace eingebunden wird.