2010-09-11 8 views
8

Prawdopodobnie brakuje mi tu oczywistości, ale jaka właściwie jest różnica między funkcjami klas TraceSwitch i SourceSwitch?TraceSwitch i SourceSwitch - jaka jest różnica?

Oboje dają identyczne opisy Podsumowanie:

Zapewnia wielopoziomową przełącznik do sterowania i śledzenia wyjście debugowania bez rekompilacji kodu.

Czy sekcje Uwagi są dziwnie podobne do moich oczu. Czy mógłby ktoś wyjaśnić różnicę w ich funkcjonalności i przypadkach użycia?

(Dla kompletności, jestem za pomocą przełączników z moim TraceSource obiektu, zamiast starego statycznego Trace klasy, choć wątpię, to sprawia, że ​​wielkiej różnicy.)

Odpowiedz

9

Różnica polega na tym, że TraceSwitch współpracuje z Trace wiadomości, natomiast SourceSwitch współpracuje z wiadomościami TraceSource, które kojarzą wiadomości z ich źródłem. Tak więc z SourceSwitch możesz skonfigurować swoich słuchaczy w oparciu o skąd pochodzą wiadomości śledzenia.

zgadzam się z dokumentacją nie bezpośrednio podkreślić różnicę, ale grzebać w odpowiedniej dokumentacji TraceSource klasy i znajdziesz to:

Klasa TraceSource jest identyfikowany przez nazwa źródło, zazwyczaj nazwa aplikacji. Wiadomości śledzenia pochodzące ze szczególnego komponentu mogą być inicjowane przez konkretne źródło śledzenia, umożliwiając łatwą identyfikację wszystkich wiadomości przychodzących z tego komponentu do .

Istnieje również przykład pokazujący, jak skonfigurować SourceSwitch, aby wyłączyć śledzenie ze źródła śledzenia.

+0

Dzięki, który sprawia, że ​​o wiele więcej sensu. Musiałem zlekceważyć ten fragment we wszystkich przeciążeniach informacyjnych. – Noldorin

5

(starszy) TraceSwitch w zasadzie jest obiektem TraceLevel, który ma być używany w połączeniu ze statyczną klasą Trace.

(Nowszy) TraceSource łączy w sobie koncepcję TraceLevel z aktualnymi metodami wyjściowymi.

W konsekwencji w dużej aplikacji można użyć wielu przełączników TraceSwitch, aby skonfigurować ustawienia śledzenia dla różnych części (GUI, DAL) programu, ale wszystkie dane wyjściowe będą wysyłane do tego samego TraceListener (s).

Za pomocą TraceSource można mieć niezależne kanały wyjściowe. I nieco lepszy interfejs API.

+0

Dziękuję, wydaje się, że to wszystko. – Noldorin

Powiązane problemy