|
Программирование >> Программирование с использованием ajax
myGarden myGarden myGarden myGarden myGarden myGarden myGarden myGarden myGarden myGarden myGarden myGarden Add(new Add(new Add(new Add(new Add(new Add(new Add(new Add(new Add(new Add(new Add(new Add(new Flower(36, 0)) Flower(37, 0)) Flower(38, 0)) Flower(39, 0)) Flower(37, 1)) Flower(38, 1)) Flower(39, 1)) Flower(37, 2)) Flower(38, 2)) Flower(39, 2)) Statue(16, 3)) Bush(20, 17)); char[,] plan = myGarden.GetPlan(); for (int у = 0; у < gardenDepth; y++) { for (int X = 0; X < gardenWidth; x++) Console. Write (plan [x, у]) ; Console.WriteLine(); Console.ReadKey(); Этот пример демонстрирует использование классов в библиотеке классов DocumentedClasses, а его результирующий вывод показан на рис. 31.8. Рис. 31.8. Простое клиентское приложение Do с итеп t edCl assesClient Как видите, пример носит действительно очень общий характер! (К счастью, садовым дизайнерам доступны более совершенные средства.) Естественно, в данном случае нас интересует только ХМL-документация, содержащаяся в коде приложения DocumentedClasses. Применение XML-документации В этой главе несколько раз отмечалось, что XML-документация пригодна не только для предоставления информации IntelliSense среде IDE; это вовсе не означает, что возможность персональной настройки IntelliSense - чрезвычайно полезная функциональная возможность. Вероятно, простейшая задача, которую можно выполнять с ХМК-докумстлтсп ее поставка вместе со сборками и предоставление пользователям отыскание (iioi ouor ее применения, но такой подход далек от идеала. В этом разделе мы [)а( (vioi j)n\i мско торые возможности максимально эффективного использования докумст.щии. Программная обработка XML-документации Наиболее очевидное применение XML-документации - использоиапмс обтир ного множества средств XML в пространствах имен .NET. Применение rc\n(bu)iMii и классов, описанных в главе 25, позволяет загружать XML-дoкyмcптaциl() и ооьем XmlDocument. Следующий практический пример представляет собой прей гое к(пи о п.-ное приложение, решающее именно эту задачу. Это практическоезатштие требует наличия выходной XML-дакумттацып, (ожЬтиоы п/т мером проекта DocumentedClasses. Прежде чем приступать к этому практичи кому ? нятию, загрузите и скомпонуйте решение DocumentedClasses. Практическое занятие Обработка ХМL-документации L Создайте новое консольное приложение XMLDocViewer в каталоге С: \Во-j 1 и Chapter31. 2. Добавьте в файл Program, cs оператор using для пространства имей Sy f . n using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; 3. Измените код метода Main () следующим образом: static void Main(string[] args) { Загрузка файла XML-документации. XmlDocmnent docmnentation = new XmlDocmnent () ; docmnentation. Load (@ . . \. . \. . \. . \Doc\jmentedClasses + @ \DocmaentedClasses\bin\debug\DocmaentedClasses.xml ); Получение элементов <member>. XmlNodeList memberNodes = docmnentation.SelectNodes ( member ) ; Извлечение элементов <member> для типов. List <XmlNode> typeNodes = new List <XmlNode> () ; foreach (XmlNode node in memberNodes) if (node.Attributes[ name ] .Value.StartsWith( T )) { typeNodes. Add (node) ; Запись типов на консоль. Console.WriteLine( Types: ); foreach (XmlNode node in typeNodes) { Console.WriteLine ( - {0} , node. Attributes [ name ] .Value. Substring (2)) , Console.ReadKey(); 4. Запустите приложение. Результат его работы показан на рис. 31.9. Рис. 31.9. Работа приложения XMLDocVi ewer Описание полученных результатов Этот пример демонстрирует основы загрузки и обработки файла XML-документации в коде С#. Обработка начинается с загрузки файла документации, которым в данном случае является файл, сгенерированный библиотекой классов DocumentedClasses: XmlDocument documentation = new XmlDocument() ; documentation.Load(@ ..\..\..\..\DocumentedClasses + @ \DocumentedClasses\bin\debug\DocumentedClasses.xml ); Обратите внимание, что примененная здесь конкатенация строк не обязательна, но она упрощает чтение кода на узкой странице. Затем посредством использования простого XPath-выражения member код получает список всех элементов <member>: XmlNodeList memberNodes = documentation.SelectNodes( member ); После того как список элементов <member> получен, в нем можно выполнить поиск тех, которые начинаются с буквы Т, для извлечения элементов, относящихся к типам, и их помещения в коллекцию List<XmlNode>: List<XmlNode> typeNodes = new List <XmlNode> (); foreach (XmlNode node in memberNodes) if (node.Attributes[ name ].Value.StartsWith( T )) { typeNodes.Add(node); Конечно, этого же эффекта можно было бы достичь в одном действии, используя более сложное выражение XPath, которое включает проверку атрибутов, но зачем излишне усложнять код? И, наконец, имена найденных типов выводятся на консоль: Console.WriteLine( Types: ); foreach (XmlNode node in typeNodes) Console.WriteLine ( - {0 } , node.Attributes[ name ].Value.Substring(2)); Можно было бы выполнить значительно больше задач, поскольку в среде .NET отыскание и обработка XML-файлов - простой процесс. Однако поскольку, как будет показано в следующих двух разделах, существуют более совершенные способы обработки XML-документации, нет никакого смысла углубляться в этот пример.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |