Starting with C# 4.0, late-bound access to members is also available through dynamic typing. In such a case, the compiler has no idea about the existence of the selected members. This kind of behavior is desirable in various scenarios:
Objects may be totally typeless because they come from some dynamic language like Ruby or Python.
Data representations may not have a schema, like with Extensible Markup Language (XML) documents with no corresponding XML Schema Definition (XSD) schema.
You received some object back ...