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.
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 ją zapewnia, i otrzymując wskaźnik do tego interfejsu lub 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, że obiekt pozostanie 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 opakowujące, aby zarządzani i niezarządzani klienci mogli myśleć, że wywołują obiekty w swoim odpowiednim środowisku. Za każdym razem, gdy zarządzany klient wywołuje metodę w obiekcie COM, środowisko uruchomieniowe tworzy opakowanie wywołujące środowisko uruchomieniowe (RCW). RCW abstrahuje różnice między zarządzanymi oraz niezarządzanymi mechanizmami referencyjnymi, między innymi. Środowisko uruchomieniowe tworzy również otokę wywoływaną przez COM (CCW) w celu odwrócenia procesu, umożliwiając klientowi COM bezproblemowe wywołanie metody na obiekcie .NET. Jak pokazano na poniższej ilustracji, perspektywa kodu wywołującego określa, którą klasę zawijającą tworzy środowisko wykonawcze.
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 także
- Generowanie kodu źródłowego ComWrappers
- Zaawansowana interoperacyjność COM w .NET Framework
- Wywoływana otoka środowiska uruchomieniowego
- Wywoływana otoka COM
- Dostosowywanie standardowych opakowań w .NET Framework
- Instrukcje: dostosowywanie zawijań z możliwością wywoływania środowiska uruchomieniowego w programie .NET Framework