Given a property value, return a value, resolving any references to other objects in the factory if necessary.
The value could be :
An IObjectDefinition, which leads to the creation of a corresponding new object instance. Singleton flags and names of such "inner objects" are always ignored: inner objects are anonymous prototypes.
A RuntimeObjectReference, which must be resolved.
An IManagedCollection. This is a special placeholder collection that may contain RuntimeObjectReferences or collections that will need to be resolved.
An ordinary object or a null reference (Nothing in Visual Basic), in which case it's left alone.