I don't believe you can. I'd strongly suggest you create a new named type instead. It looks like you know all the properties and methods you want to create - so just create a Person
type. ExpandoObject
is useful in some scenarios, but don't expect it to be able to cope with everything.
If you really want a dynamic object with this functionality, you'll need to derive a class from DynamicObject
instead - that way you could implement overloading, if you wanted to (by intercepting method invocations).