The message pipeline model for Microsoft Dynamics CRM defines a parameter collection of custom data values in the execution context that is passed through the pipeline and shared among registered plug-ins.
This collection of data can be used by different plug-ins to communicate information between plug-ins and enable chain processing where data processed by one plug-in can be processed by the next plug-in in the sequence and so on.
The name of the parameter that is used for passing information between plug-ins is Shared Variables. This is a collection of key\value pairs.
At run time, plug-ins can add, read, or modify properties in the Shared Variables collection. This provides a method of information communication among plug-ins.
For a plug-in registered in stage 20 or 40, to access the shared variables from a stage 10 registered plug-in that executes on create, update, delete, or by a RetrieveExchangeRateRequest, you must access the ParentContext.SharedVariables collection.
For all other cases, IPluginExecutionContext.SharedVariables contains the collection.