Класс FeedsFile открывает файл с рассылкой в объекте XmlDocumen торый может использоваться для извлечения любого желаемого мента с помощью интерфейса DOM.
private XmlDocument _doc; public FeedsFile(string path) {
_doc = new XmlDocument(); _doc.Load(path);
}
Класс FeedsFile имеет метод GetLinkByFileName(). Этот метод пр единственный аргумент fileName и возвращает объект FeedsFileLi
public FeedsFileLink GetLinkByFileName(string fileName) {
string pathToNode =
String.Format("/feeds/section/link[@filename='{0}']",fileName XmlNode linkNode = _doc.SelectSingleNode(pathToNode);
return new FeedsFileLink(linkNode);
>
Метод XmlDocument.SelectSingleNodeQ отбирает определенный узел Xmlойе в соответствии с выражением XPath, которое передается методу, данном случае строка выражения XPath создается с помощью метода String.Format() и соответствует элементу с определенным зна¬чением атрибута filename. После этого отобранный XmlNode передается вяструктору FeedsFileLink, который и возвращает ссылку на объект.
инструктор FeedsFileLink принимает XmlNode в качестве аргумента, из¬влекает из него необходимую информацию и размещает ее в частных «венах объекта.
private string _name; private string _filename; private Uri _uri;
oublic FeedsFileLink(XmlNode myNode) i
_name = myNode.Attributes["name"].Value; .filename = myNode.Attributes["filename"]. Value; _uri = new Uri(myNode.Attributes["href"].Value);
}
Лоле _name хранит значение атрибута name заданного узла, _f ilename -авжчение атрибута filename и _uri - ссылку на объект System. Uri.
Конечно же, вместо объекта типа Uri могла бы использоваться обычная строка, поскольку большинство классов и методов, которые принимают в ка¬честве аргументов объекты Uri, имеют перегруженные версии, которые мо¬гут принимать строки, но объекты Uri намного лучше!
Щжны класса, описанные выше, являются частными. К частным чле-вжж класса нельзя получить доступ из-за пределов класса в обход ме-шшадов доступа (accessors). Методы доступа в С# позволяют получать в изменять значения частных членов:
public string Name {
get {
return _name;
}
}
' public string FileName <
get {
return filename;
>
i
:ublic Uri Uri
{
get {
return _uri;
>
}
Методы доступа в FeedsFileLink предоставляют доступ к частным нам только для чтения. Эти конкретные методы, называемые ме ми чтения (getters), возвращают значения частных членов. Такой ход гарантирует, что данные, содержащиеся в классе, не будут тожены или повреждены по ошибке.