Listing 5-1. Klasa Document
Ten przykład rozpoczyna się w wierszu 6. pliku Document.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu StartingPoint.
Listing 5-2. Przykładowe metody do przetwarzania dokumentu
Ten przykład rozpoczyna się w wierszu 9. pliku DocumentProcesses.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu StartingPoint.
Listing 5-3. Przetwarzanie dokumentu
Ten przykład rozpoczyna się w wierszu 9. pliku DocumentProcessor.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu StartingPoint.
Listing 5-4. Program sprawdzający klasy obsługujące przetwarzanie dokumentów
Ten przykład rozpoczyna się w wierszu 9. pliku Program.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu StartingPoint.
Listing 5-5. Elastyczny procesor dokumentów
Ten przykład rozpoczyna się w wierszu 9. pliku DocumentProcessor.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu ClassBased.
Listing 5-6. Implementacja abstrakcyjnej klasy DocumentProcess
Ten przykład rozpoczyna się w wierszu 29. pliku DocumentProcesses.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu ClassBased.
Listing 5-7. Konfigurowanie procesora dokumentów poprzez dodawanie procesów
Ten przykład rozpoczyna się w wierszu 35. pliku Program.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu ClassBased.
Listing 5-8. Stosowanie dynamicznie skonfigurowanego procesora
Ten przykład rozpoczyna się w wierszu 11. pliku Program.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu ClassBased.
Listing 5-9. Dostosowanie klasy DocumentProcessor do wykorzystania delegacji
Ten przykład rozpoczyna się w wierszu 9. pliku DocumentProcessor.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu DelegateBased.
Listing 5-10. Kolejny etap przetwarzania
Ten przykład rozpoczyna się w wierszu 7. pliku TrademarkFilter.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu DelegateBased.
Listing 5-11. Dodawanie etapu przetwarzania wykorzystującego metodę niestatyczną
Ten przykład rozpoczyna się w wierszu 34. pliku Program.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu DelegateBased.
Listing 5-12. Modyfikacja procesora i wykorzystanie wbudowanego typu delegacji Action<T>
Ten przykład rozpoczyna się w wierszu 9. pliku DocumentProcessor.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu GenericAction.
Listing 5-13. Dodanie szybkiego testu weryfikacyjnego do procesu przetwarzania dokumentów
Ten przykład rozpoczyna się w wierszu 9. pliku DocumentProcessor.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu QuickCheck.
Listing 5-14. Klasa DocumentProcessor wykorzystująca delegację Predicate<T>
Ten przykład rozpoczyna się w wierszu 9. pliku DocumentProcessor.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu GenericPredicate.
Listing 5-15. Dostosowanie metody Configure do korzystania ze zmodyfikowanej wersji klasy DocumentProcessor
Ten przykład rozpoczyna się w wierszu 34. pliku Program.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu GenericPredicate.
Listing 5-16. Właściwość zawierająca delegację
Ten przykład rozpoczyna się w wierszu 9. pliku DocumentProcessor.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu Lambdas.
Listing 5-17. Wykorzystanie delegacji przechowywanej we właściwości
Ten przykład rozpoczyna się w wierszu 40. pliku DocumentProcessor.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu Lambdas.
Listing 5-18. Określanie wartości właściwości przy użyciu wyrażenia lambda
Ten przykład rozpoczyna się w wierszu 28. pliku Program.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu Lambdas.
Listing 5-19. Rozbudowana funkcja do rejestrowania komunikatów w dzienniku
Ten przykład rozpoczyna się w wierszu 11. pliku Program.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu Logging.
Listing 5-20. Modyfikacja zmiennych zewnętrznych w metodzie zagnieżdżonej
Ten przykład rozpoczyna się w wierszu 32. pliku Program.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu Closures.
Listing 5-21. Zgłaszanie zdarzeń
Ten przykład rozpoczyna się w wierszu 42. pliku DocumentProcessor.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu Events.
Listing 5-22. Rejestracja oraz rezygnacja z subskrypcji zdarzeń
Ten przykład rozpoczyna się w wierszu 6. pliku ProductionDeptTools.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu Events.
Listing 5-23. Zaktualizowana metoda Main
Ten przykład rozpoczyna się w wierszu 44. pliku Program.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu Events.
Listing 5-24. Niestandardowa klasa argumentów zdarzenia
Ten przykład rozpoczyna się w wierszu 6. pliku ProcessEventArgs.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu CustomEventArgs.
Listing 5-25. Zaktualizowane składowe zdarzeń
Ten przykład rozpoczyna się w wierszu 11. pliku DocumentProcessor.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu CustomEventArgs.
Listing 5-26. Zaktualizowany kod generujący zdarzenia
Ten przykład rozpoczyna się w wierszu 74. pliku DocumentProcessor.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu CustomEventArgs.
Listing 5-27. Tworzenie obiektu argumentu zdarzenia
Ten przykład rozpoczyna się w wierszu 43. pliku DocumentProcessor.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu CustomEventArgs.
Listing 5-28. Klasa argumentów umożliwiająca przerwanie operacji
Ten przykład rozpoczyna się w wierszu 6. pliku ProcessCancelEventArgs.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu CancelEventArgs.
Listing 5-29. Zdarzenie, które można odwołać
Ten przykład rozpoczyna się w wierszu 11. pliku DocumentProcessor.cs (i jest kontynuowany w wierszu 85. tego samego pliku) należącego do solucji DocumentProcessing.sln umieszczonej w katalogu CancelEventArgs.
Listing 5-30. Obsługa odwołania operacji
Ten przykład rozpoczyna się w wierszu 43. pliku DocumentProcessor.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu CancelEventArgs.
Listing 5-31. Wykorzystanie możliwości anulowania operacji
Ten przykład rozpoczyna się w wierszu 6. pliku ProductionDeptTools.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu CancelEventArgs.
Listing 5-32. Własny sposób przechowywania informacji o zdarzeniach
Ten przykład rozpoczyna się w wierszu 9. pliku DocumentProcessor.cs należącego do solucji DocumentProcessing.sln umieszczonej w katalogu CustomEventStorage.