XmlNamespace и эстетика в Silverlight-коде
WPF, MVVM, Silverlight | создано: 03.12.2010 | опубликовано: 22.04.2014 | обновлено: 13.01.2024 | просмотров: 4000
В этой статье наведем "эстетический" порядок и красоту в коде, и в частности, в XAML-разметке.
Какой из видов Silverlight кода Вам больше всего нравится? Сравните два варианта.
1 вариант (обычный):
xmlns:clb="clr-namespace:Calabonga.Silverlight.Framework;assembly=Calabonga.Silverlight.Framework"
и 2 вариант (эстетичный)
xmlns:clb="http://schemas.calabonga.com"
Нет необходимости дискутировать по поводу удобства просмотра и отображения кода. Безусловно, второй (эстетичный) вариант выглядит… эстетично (уж простите за каламбур). Так вот, реализовать такой способ объявления namespace очень просто. Надо всего лишь в файле AssemblyInfo.cs проекта сборки дописать одну строку.
У меня есть своя собственная сборка для реализации MVVM паттерна, которую я пользую для программирования в своих проектах. Буду ставить эксперименты на этой сборке. Итак, я открыл проект своей библиотеки под названием Calabonga.Silverlight.Framework. Нашел файл AssemblyInfo.cs и в самом низу (после всех директив) написал еще одну
директиву для компилятора:
[assembly: XmlnsDefinition("http://schemas.calabonga.com/", "Calabonga.Silverlight.Framework")]
Заметьте, что атрибут AssemblyVersion находится в пространстве имен System.Windows.Markup, значит необходимо добавить этот namespace в AccemblyInfo.cs. После этого мне осталось только откомпилировать проект и всё. Теперь во всех своих приложениях я могу использовать эстетичный код.
Хочу еще заметить, что если у Вас существует несколько namespace в одной сборке, то можно добавить несколько директив, например:
[assembly: XmlnsDefinition("http://schemas.calabonga.com/", "Calabonga.Silverlight.Controls")] [assembly: XmlnsDefinition("http://schemas.calabonga.com/", "Calabonga.Silverlight.Framework")] [assembly: XmlnsDefinition("http://schemas.calabonga.com/", "Calabonga.Silverlight.Data")]
Главное что это дает, так это универсальность. Трудно будет забыть как называется сборка, которую надо подключить.