Dela via


Avlyssning av korskontextanrop

När ett objekt aktiveras i en viss kontext hanteras efterföljande anrop till eller från det i kontexten på ett annat sätt än anrop över kontextgränsen. Anrop över kontextgränsen hanteras med enkla proxyservrar. Dessa proxyservrar hanterar den medling som krävs för att justera körningsmiljön från en som rymmer anroparen till en som rymmer anroparen. Den här processen kallas avlyssning.

Korskontextanropsavlyssning är nödvändigt eftersom objekt i olika kontexter har olika körningskrav – det är just orsaken till kontexter. COM+ fångar upp alla objektreferenser som du skickar som metodparametrar och konverterar dem automatiskt till proxyservrar så att de kan användas i den nya kontexten.

Om du delar objektreferenser över kontextgränser på andra sätt, till exempel i globala variabler, bör du alltid använda CoMarshalInterface och CoUnmarshalInterface. Dessa funktioner kan översätta en objektreferens till en proxy som kan användas i en annan kontext. Dela aldrig en referens för råobjekt över kontextgränser.

Beteendet för anrop i kontexten kan få oönskade konsekvenser när det gäller objekt som exponerar gränssnitt som inte kan konverteras. I det här fallet vill du förmodligen insistera på att objektet som inte kan konverteras endast ska aktiveras i kontexten för anroparen och aldrig i sin egen kontext. Du kan göra detta genom att välja alternativet Måste aktiveras i anroparens kontext på fliken Aktivering för komponenten Egenskaper sidan. (Se Framtvinga aktivering i anroparens kontext för stegvisa instruktioner.)

Kontextaktivering