пятница, 30 января 2009 г.

Как узнать полный путь к файлу в приложении на ASP.Net?

Исчерпывающее руководство по этому вопросу можно найти здесь.

Основное же – это использование метода MapPath(), который прячется в таких классах как Control, Page, Server.

четверг, 29 января 2009 г.

Перебираем все свойства класса

Иногда возникает задача перебрать все свойства некоторого класса. Задача очень просто решается при помощи рефлексии: person.GetType().GetProperties();

Этот код возвращает коллекцию PropertyInfo, из которой мы можем достать все необходимое.

А вот пример кода возвращающего значение свойства объекта по имени свойства: person.GetType().GetProperty(property.Name).GetValue(person, null)

Вывод XML в виде форматированного текста

Иногда возникает задача вывести некий Xml документ в строку, а иногда даже в виде текста на HTML страничке. Я нашел два похожих варианта решения.

Вариант с использованием XmlTextWriter

StringBuilder builder = new StringBuilder();
XmlTextWriter wr = new XmlTextWriter(new StringWriter(builder));
wr.Indentation = 2;
wr.IndentChar = '\t';
wr.Formatting = Formatting.Indented;

//Этот запрос заполняет строку builder xml данными форматированными символами "/t и /n"
ExecuteQuery(query, new SparqlXmlQuerySink(wr));


string s = builder.ToString();
//А это нам понадобилось чтобы получить возможность вставить строку в HTML
s.Replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;").Replace("<", "&lt;").Replace(">", "&gt;").Replace("\n", "br")


Вариант с использованием XmlWriter

StringBuilder builder = new StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = ("\t");

XmlWriter xmlWriter = XmlWriter.Create(builder, settings);

//Заполняем builder XML кодом и опять получаем строку форматированную символами "/t и /n"
manager.Write(xmlWriter);