Evaluate if we can remove the static_cast method from the generated code API..
It is used whenever we receive a generic Efl.Object and want to downcast it.
One approach would be to rework the generated code to make use of reflection and the class register database to create a correct instance before returning the Efl.Object. In this case the user would need to do only something like var button = obj as Efl.Ui.Button.