Sdílet prostřednictvím


Zachycení volání mezi kontexty

Při aktivaci objektu v daném kontextu se následná volání do nebo z něj v kontextu zpracovávají jinak než volání přes hranici kontextu. Volání přes hranici kontextu se zpracovávají pomocí jednoduchých proxy serverů. Tyto proxy servery zpracovávají jakoukoli mediaci, která je nutná k úpravě prostředí za běhu z jednoho, který volajícímu vyhovuje, aby se přizpůsobil volaný. Tento proces se označuje jako průsečík.

Zachycení volání mezi kontexty je nezbytné, protože objekty v různých kontextech mají různé požadavky na dobu běhu – to je přesně důvod kontextu. Com+ zachytí všechny odkazy na objekty, které předáte jako parametry metody, a automaticky je převede na proxy servery, aby je bylo možné použít v novém kontextu.

Pokud sdílíte odkazy na objekty přes kontextové hranice jinými prostředky , například v globálních proměnných, měli byste vždy používat CoMarshalInterface a CoUnmarshalInterface. Tyto funkce můžou přeložit odkaz na objekt do proxy serveru použitelného v jiném kontextu. Nikdy nesdílejte nezpracovaný odkaz na objekt napříč hranicemi kontextu.

Chování volání napříč kontextem může mít nežádoucí důsledky v případě objektů, které zveřejňují rozhraní, která nelze zařazuje. V této situaci budete pravděpodobně chtít trvat na tom, aby objekt, který nelze zařažovat, byl aktivován pouze v kontextu jeho volajícího a nikdy ve svém vlastním kontextu. Můžete to provést tak, že vyberete Musí být aktivována v kontextu volajícího možnost na kartě Aktivace komponenty vlastnosti stránce. (Podrobné pokyny najdete v tématu Vynucení aktivace v kontextovém volajícího.)

kontextové aktivační