In an earlier column I discussed the basics of working with ExpandoObjects (including how to add methods to an ExpandoObject). As I said in that column, there's nothing stopping you from building an ...
You can give your users the ability to store any data they want, including stuff they make up at run time, by using an ExpandoObject. In fact, when you don't know what your data is until run time (and ...