Hi Deven,
I'm not sure what you mean by "read a property dynamically". All properties can be evaluated by placing their name between double curly braces.
However, to answer your question, here are two methods on TestExec you might find useful.
getAllState() - returns a java.util.Map where you can access all of the properties and get the Map size.
getStateProps() - returns a String[] with all property names.
--Mike