From Rockford Lhotka's Expert C# 2008 and VB 2008 Business Objects books
You can use reflection to get a list of properties or fields in an object. CSLA does this in UndoableBase in 3.0, and that might give you some ideas.
Rocky