Delen via


Onderschepping van kruiscontextoproepen

Wanneer een object in een bepaalde context wordt geactiveerd, worden volgende aanroepen naar of van het object, binnen de context, anders verwerkt dan aanroepen over de contextgrens. Aanroepen over de contextgrens worden verwerkt met lichtgewicht proxy's. Deze proxy's verwerken de bemiddeling die nodig is om de runtime-omgeving aan te passen van een omgeving die de beller geschikt maakt voor de beller. Dit proces wordt onderscheppinggenoemd.

Intercontext-aanroeponderschepping is nodig omdat objecten in verschillende contexten verschillende runtimevereisten hebben. Dit is precies de reden voor contexten. COM+ onderschept alle objectverwijzingen die u als methodeparameters doorgeeft en converteert ze automatisch naar proxy's, zodat ze kunnen worden gebruikt in de nieuwe context.

Als u objectverwijzingen deelt tussen contextgrenzen, bijvoorbeeld in globale variabelen, moet u altijd CoMarshalInterface en CoUnmarshalInterfacegebruiken. Deze functies kunnen een objectverwijzing omzetten in een proxy die in een andere context kan worden gebruikt. Deel nooit een onbewerkte objectverwijzing over contextgrenzen.

Het gedrag van aanroepen in context kan ongewenste gevolgen hebben in het geval van objecten die interfaces blootstellen die niet kunnen worden marshaled. In dit geval wilt u er waarschijnlijk op aandringen dat het object dat niet kan worden marshaled alleen in de context van de beller kan worden geactiveerd en nooit in zijn eigen context. U kunt dit doen door de moet worden geactiveerd in de context van de beller optie op het tabblad Activering van het onderdeel Eigenschappen pagina. (Zie Activering afdwingen in de context van de beller voor stapsgewijze instructies.)

contextactivering