Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Com+ usuwa lub zmniejsza kilka ograniczeń debugowania w programach Microsoft Visual Basic 6.0 i MTS. Poniższa lista zawiera podsumowanie zmian, których można oczekiwać za pomocą modelu COM+:
Debugowanie wielu składników — w modelu COM+można debugować scenariusze, w których klient uruchomiony w jednym wystąpieniu środowiska IDE wykonuje wywołania dowolnej liczby bibliotek DLL uruchomionych w innej grupie projektów. Obiekty w zgrupowanych projektach DLL mogą wywoływać się dowolnie, przepływając kontekst zgodnie z potrzebami. Oczywiście działa to również wtedy, gdy biblioteki DLL i klient znajdują się w tej samej grupie projektów w tym samym wystąpieniu środowiska IDE.
Ograniczenia debugowania dotyczące zdarzeń Class_Initialize i Class_Terminate — za pomocą COM+ można umieścić kod w zdarzeniach Class_Initialize i Class_Terminate składnika aplikacji COM+ nawet jeśli ten kod próbuje uzyskać dostęp do obiektu lub odpowiadającego mu obiektu kontekstu. Możesz ustawić tam punkty przerwania i używać zegarków. Punkty przerwania można również ustawić w zdarzeniu Class_Terminate.
Mimo że nie jest już potrzebne jako obejście, nadal można zaimplementować interfejs IObjectControl i użyć jego metod Aktywacja i Deaktywacja, jeśli musisz wykonać kod podczas uruchamiania i zamykania składnika. Teraz można również umieścić punkty przerwania w kodzie dla metod Dezaktywuj lub CanBePooled.
Oglądanie obiektów MTS — za pomocą modelu COM+ można dodawać obserwacje dla zmiennych obiektowych zwracanych przez COM+, w tym wartości zwracane z SafeRef, GetObjectContextoraz IObjectContext::CreateInstance metod.
Zwiększona stabilność w przypadku awarii składników — w modelu COM+awaria składnika nie będzie już zawsze zatrzymywać języka Visual Basic (który działa w tym samym procesie co debugowany składnik). Na przykład obsługa błędów ponownej aktywacji just in time (JIT) umożliwia teraz przyjrzenie się kontekstowi obiektu podczas debugowania.
Debugger może ponownie uaktywnić obiekty wydane przez COM+ — podobnie jak w przypadku usługi MTS, program Visual Basic 6.0 może ponownie uaktywnić obiekty COM+ podczas debugowania po kroku w aplikacji klienckiej. Ze względu na sposób, w jaki program Visual Basic 6.0 odnajduje informacje o obiektach, jest to oczekiwane zachowanie. Rozważmy na przykład następujący kod:
Dim obj As Object Set obj = CreateObject("MyApp.MyClass") obj.Test 'Call the user-defined subroutine named Test. Set obj = NothingJeśli metoda obj.Test wywołuje IObjectContext::SetComplete, COM+ natychmiast zwalnia obj z pamięci, ale obj nie zostało jeszcze ustawione na Nothing. Kiedy metoda Test w obj zwraca wynik, debuger języka Visual Basic wywołuje QueryInterface na obj dla interfejsu IProvideClassInfo. Opakowanie kontekstu związane z obj tworzy nowe wystąpienie klasy MyApp.MyClass, aby obsłużyć wywołanie QueryInterface. W rezultacie w debugerze będzie można zobaczyć ten niezainicjowany obiekt po zakończeniu działania obj.Test. Ten obiekt jest wyświetlany tylko w debugerze i jest usuwany przez kolejną instrukcję, aby ustawić obj na Wartość Nic.
Tematy pokrewne
-
Debugowanie w środowisku IDE języka Visual Basic