The nice thing about dynamic objects is, that you just need the handle to that object and you have everything you need to access it's attributes and methods. Therefore if you want to share something, you don't share the object, instead you share the access to it. But, using shared things is not best practice. You rather should pass the handle to the dynamic objects or have a function or internal procedure in the procedure in which the dynamic object lives that will pass out the handle to it.
Regards, RealHeavyDude.