Otoki COM
Model COM różni się od modelu obiektów środowiska uruchomieniowego platformy .NET na kilka ważnych sposobów:
Klienci obiektów COM muszą zarządzać okresem istnienia tych obiektów; środowisko uruchomieniowe języka wspólnego zarządza okresem istnienia obiektów w swoim środowisku.
Klienci obiektów COM odkrywają, czy usługa jest dostępna, żądając interfejsu, który zapewnia usługę i wracając do wskaźnika interfejsu, czy też nie. Klienci obiektów platformy .NET mogą uzyskać opis funkcji obiektu przy użyciu odbicia.
Obiekty NET znajdują się w pamięci zarządzanej przez środowisko wykonawcze środowiska uruchomieniowego platformy .NET. Środowisko wykonywania może przenosić obiekty w pamięci ze względu na wydajność i aktualizować wszystkie odwołania do obiektów, które przenosi. Klienci niezarządzani, po uzyskaniu wskaźnika do obiektu, polegają na tym, aby obiekt pozostał w tej samej lokalizacji. Ci klienci nie mają mechanizmu radzenia sobie z obiektem, którego lokalizacja nie jest stała.
Aby przezwyciężyć te różnice, środowisko uruchomieniowe udostępnia klasy otoki, aby klienci zarządzani i niezarządzani myśleli, że wywołuje obiekty w odpowiednim środowisku. Za każdym razem, gdy zarządzany klient wywołuje metodę w obiekcie COM, środowisko uruchomieniowe tworzy otokę wywołującą środowisko uruchomieniowe (RCW). RcWs abstrakcje różnic między zarządzanymi i niezarządzanych mechanizmów odwołań, między innymi. Środowisko uruchomieniowe tworzy również otokę wywoływaną modelu COM (CCW) w celu odwrócenia procesu, umożliwiając klientowi COM bezproblemowe wywołanie metody w obiekcie platformy .NET. Jak pokazano na poniższej ilustracji, perspektywa kodu wywołującego określa klasę otoki tworzoną przez środowisko uruchomieniowe.
W większości przypadków standard RCW lub CCW wygenerowany przez środowisko uruchomieniowe zapewnia odpowiednie marshalling dla wywołań, które przekraczają granicę między com i środowiskiem uruchomieniowym platformy .NET. Za pomocą atrybutów niestandardowych możesz opcjonalnie dostosować sposób, w jaki środowisko uruchomieniowe reprezentuje zarządzany i niezarządzany kod.
Zobacz też
- Generowanie źródła comWrappers
- Zaawansowane współdziałanie modelu COM w programie .NET Framework
- Wywoływana otoka środowiska uruchomieniowego
- Wywoływana otoka COM
- Dostosowywanie standardowych otoek w programie .NET Framework
- Instrukcje: dostosowywanie zawijań z możliwością wywoływania środowiska uruchomieniowego w programie .NET Framework