Ten years ago, I played with OLE Automation so we can write things such as the following, where Document represents an XML document:
String name = Document.Bookstore.Book.Author.LastName;
Document.Bookstore.Book.Author.LastName = "NewName";
The experiment was named XMLAuto.
I wanted to implement this again with C# 4's dynamic keyword, but I won't have to do it. Mark Michaelis and Michael Stokesbary already played with this (last year).
I find it's an interesting way to learn how to implement IDynamicObject.