Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pro nakonfigurované komponenty spuštěné v rámci aplikací MODELU COM+ jsou kontexty základem, na kterých službách MODELU COM+ jsou poskytovány. V modelu COM+je kontext definován jako sada vlastností za běhu přidružených k jednomu nebo více objektům MODELU COM, které slouží k poskytování služeb pro tyto objekty.
V modelu COM+je každý objekt MODELU COM přidružený přesně k jednomu kontextu při spuštění (tj. mezi aktivací a deaktivací) a každý kontext se nachází v přesně jednom apartmánu COM. Ve stejném kontextu může běžet více objektů a v jednom bytě se může nacházet více kontextů. Inicializováno při aktivaci objektu, kontextové vlastnosti, jako jsou vlastnosti kontextu zabezpečení, představují potřeby objektu za běhu.
Poznámka
U nekonfigurovaných komponent, které nepoužívají služby MODELU COM+, je kontext z většiny ignorován.
Com+ používá vlastnosti kontextu jako základ pro poskytování služeb za běhu. Tyto vlastnosti uchovávají stav, který určuje, jak spouštěcí prostředí provádí služby pro objekty v kontextu. V některých případech můžete přímo s vlastnostmi kontextu objektu pracovat, abyste označili určitý stav relevantní pro službu, která je pro daný objekt poskytována. To byste například udělali, když objekt, který se účastní automatické transakce hlasuje na výsledku transakce.
Podrobnou diskuzi o základech modelu COM těchto konceptů naleznete v tématu Procesy, vlákna a apartmány.
Programová interakce s vlastnostmi kontextu
Každý kontext má přidruženou ObjectContext objekt, který sleduje jeho vlastnosti. K ObjectContext můžete přistupovat zavoláním funkceGetObjectContextGetObjectContext. Po přístupu ObjectContextmůžete volat metody IObjectContext rozhraní, které zpřístupňuje manipulaci s vlastnostmi kontextu.
Například volání IObjectContext::SetComplete má vliv na nastavení konzistence transakce na "konzistentní" a JIT-aktivace udělal bit na "hotovo" v kontextu přidruženém k objektu. "Konzistentní" signály modelu COM+, které hlasujete k potvrzení transakce, a "hotovo" znamená, že objekt je připraven k deaktivaci při vrácení metody.
Kromě IObjectContext, další specializovaná rozhraní poskytující přístup k kontext vlastnostem jsou IObjectContextInfo, IContextStatea IObjectContextActivity. Do určité míry ISecurityCallContext také přistupuje k vlastnostem kontextu. Můžete použít IGetSecurityCallContext::GetSecurityCallContext získat ISecurityCallContext.
Principy aktivace a zachycení
Obecně platí, že je potřeba přemýšlet o kontextu pouze v rozsahu, ve kterém představuje řadu vlastností, z nichž některé můžete nastavit nebo získat, které slouží k poskytování služeb modelu COM+ pro vaše komponenty. Za některých okolností ale možná budete muset podrobněji zvážit následující dvě vzájemně propojené omezující vlastnosti kontextu:
- kontext aktivacenebo inicializace objektu v příslušném kontextu.
- interceptionnebo co com+ dělá s voláními přes kontextovou hranici.
Vztah k obálkám kontextu MTS
Kontexty efektivně nahrazují obálky kontextu MTS. Účelem, který obsluhují – poskytování automatických služeb pomocí žádostí o vytváření zachytávání – je teď integrovaná funkce modelu COM+. V důsledku toho už nemusíte používat funkci SafeRef. V MTS SafeRef byl použit k získání odkazu na objekt, který by mohl být předán mimo jeho kontextový obálka. V modelu COM+, to je zbytečné; normální odkazy na objekty (této ukazatele) fungují.