From Rockford Lhotka's Expert C# 2008 and VB 2008 Business Objects books
I have posted a complete working solution to this before:http://forums.lhotka.net/forums/post/7444.aspx
It may be a bit out of date now that CSLA has added so much extensibility. But you can review it for ideas.
HTH
Joe
foreach ( var child in children){ if (child is BusinessBase) { brokenRules.Merge("??", ((BusinessBase)child).BrokenRulesCollection); }}