public object PostProcessBeforeInitialization( object instance, string name )
{
if (SharedStateFactories.Length == 0)
{
return instance;
}
ISharedStateAware ssa = instance as ISharedStateAware;
if (ssa != null && ssa.SharedState == null)
{
// probe for first factory willing to serve shared state
foreach (ISharedStateFactory ssf in _sharedStateFactories)
{
if (ssf.CanProvideState( ssa, name ))
{
IDictionary sharedState = ssf.GetSharedStateFor( ssa, name );
if (sharedState != null)
{
ssa.SharedState = sharedState;
break;
}
}
}
}
return instance;
}