Вспомогательный класс ведения протокола Trace для Silverlight 2.0

by 29. May 2008 04:54

Так уж получилось, что в Silverlight 2.0 beta 1 разработчики не включили знакомый всем .net программистам класс Trace из System.Diagnostics. Как следствие стало затруднительно выводить отладочные сообщения в протокол и анализировать его. Протокол оказывает неоценимую услугу в задачах, например, оптимизации быстродействия.

На сайте code.elisy.net был представлен класс Elisy.Scab.Services.Trace, опять же в виде модуля к SCAB (Silverlight Composite Application Block). Исходный код вышел под лицензией GPL, но судя по специфике SCAB в дальнейшем будет опубликован под LGPL. Мы, как и в прошлый раз, отсоединим его, закомментировав класс public class TraceModule : Module и его реализацию.

Описание класса Elisy.Scab.Services.Trace

Настройка класса происходит через два свойства: public string DestinationId и public HtmlElement Destination. Первое указывает на Id элемента на Html странице, второе – на сам html-элемент. Может указываться любое из этих свойств. Если не задавать свойства или на странице нет элемента с DestinationId, класс сам создаст новый div-элемент, добавит его в конец body и будет выводить сообщения в нем.

Вспомогательное свойство public int IndentLevel позволяет генерировать отступ при выводе строк в протокол. Управление свойством ведется через IndentLevel++ и IndentLevel--.

public void Write(string message) – выводит строковую переменную в элемент-приемник.

public void WriteHtml(string html) – выводит html-фрагмент в элемент-приемник

public void WriteLine(string message) – выводит строковую переменную и делает перевод на следующую строку через <br/>

Все 3 Write-метода работают со свойством innerHTML элемента-приемника. Write и WriteLine учитывают IndentLevel и выводят разделитель кратный свойству.

Примеры вызова

Trace trace = new Trace();
trace.WriteLine("Message Line 1");
trace.Write("Message 2");
trace.WriteLine("Message 3");
trace.WriteHtml("<p>Message 4 as Html</p>");
trace.IndentLevel++;
trace.WriteLine("Message 5 with separator");

Результат вызова:

Message Line 1
Message 2Message 3

Message 4 as Html

    Message 5 with separator

Trace.cs (3.90 kb)

Tags: ,

C# | Silverlight

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

Richmedia.us

Добро пожаловать на сайт Richmedia.us

1 2 3 4 5 6 7 8

RecentPosts

RecentComments

Comment RSS