Скажімо, я працюю над невеликим консольним додатком для пакетної обробки у VB.Net. Я хочу мати можливість структурувати програму так:
Sub WorkerMethod()
'Do some work
Trace.WriteLine("Work progress")
'Do more work
Trace.WriteLine("Another progress update")
'...
End Sub
Sub Main()
'Do any setup, like confirm the user wants to continue or whatever
WorkerMethod()
End Sub
Зверніть увагу, що я використовую, Trace
а не Console
для мого виводу. Це тому, що робочий метод може бути викликаний з іншого місця, або навіть жити в іншій збірці, і я хочу мати можливість приєднати до нього різні прослуховувачі трасування. То як я можу підключити консоль до трасування?
Я вже можу це зробити, визначивши простий клас (показано нижче) і додавши екземпляр до колекції слухачів Trace, але мені цікаво, чи є для цього більш прийнятий чи вбудований спосіб:
Public Class ConsoleTrace
Inherits Diagnostics.TraceListener
Public Overloads Overrides Sub Write(ByVal message As String)
Console.Write(message)
End Sub
Public Overloads Overrides Sub WriteLine(ByVal message As String)
Console.WriteLine(message)
End Sub
End Class