Skip to: Site menu | Main content

Autor

Chłopak z Bałut (Dołów), po uniwerku i stypendium. Wiecznie zestresowane, przemądrzałe bezguście. Więcej na stronie domowej.

Iwenty w wiżułal studio

Czepianie

Kolega z zespołu pracuje nad rozszerzeniem Visual Studio. A ponieważ to bardzo cierpliwy i spokojny człowiek, co kilkanaście minut wyrzuca z siebie coś a'la "To przecież chore", albo "Tego nie ma". Dzisiaj pokazał mi coś, w co sam nie byłem po prostu w stanie uwierzyć.

Problem pojawił się kilka tygodni temu wraz ze zgłoszeniem, że zamykanie projektu nie czyści niektórych okien. Zgłoszenie zostało już dawno zamknięte mimo braku pełnego rozwiązania wraz z opisem, że do zamknięcia projektu należy najpierw pozamykać ręcznie wszystkie pozostałe okna. W przeciwnym przypadku nie odpalało się po prostu odpowiednie zdarzenie.

Dzisiaj kolega trafił przypadkiem na rozwiązanie. Okazało się, że zamiast podpinać się pod zdarzenie w ten sposób:


    _applicationObject.Events.SolutionEvents.Opened += ...

należy najpierw przypisać sobie sam event do zmiennej, a następnie podpiąć odpowiedni handler do tej zmiennej np w ten sposób:


    Events2 events;
    SolutionEvents solutionEvents;
    events = (Events2)_applicationObject.Events;
    solutionEvents = events.SolutionEvents;
    solutionEvents.Opened += ...

Szczena mi opadła, jak to zobaczyłem. Pierwszą myślą było, że może to pewnie ze względu na to rzutowanie - nie jestem nadal pewien, czy można przeciążać zdarzenia, ale wydawało mi się to niewykluczone. Wstawiliśmy więc rzutowanie do pierwotnego rozwiązania - nic nie dało. Nie wiem, po prostu nie mam absolutnie zielonego pojęcia dlaczego tak jest.

03 listopada 2006, 19:23:57

Komentarze

Treść komentarza można formatować zgodnie ze składnią Textile.
Odpowiedzi śledzić można przy pomocy RSS RSS .