<p>What is their use if when you call the method, it might not exist?</p>

<p>Does that mean that you would be able to dynamically create a method on a dynamic object?</p>

<p>What are the practical use of this?</p>

You won't really be able to dynamically create the method - but you can get an implementation of
```
IDynamicMetaObject
```
(often by extending
```
DynamicObject
```
) to respond
as if the method existed
.
Uses:
Programming against COM objects with a weak API (e.g. office)
Calling into dynamic languages such as Ruby/Python
Potentially making "explorable" objects - imagine an XPath-like query but via a method/property calls e.g.
```
document.RootElement.Person[5].Name["Attribute"]
```
No doubt many more we have yet to think of :)