From Rockford Lhotka's Expert C# 2008 and VB 2008 Business Objects books
Why do you need to serialize it? The SortedBindingList is a view of an IList, similar to a DataView of a DataTable in ADO.NET. Your client will retrieve the IList (BusinessCollection) from the DataPortal, which will be serialized. The SortedBindingList will display a sorted view on the client. Think of the sorted list being a collection of pointers to the actual objects in the business collection.
Does that help?
UK Daaarn Saaarf
You should be very careful when doing something like this. As someone noted, the sorted list is merely a view over another list. If you serialize the sorted list, it will serialize the original list and all its child objects (and their children, etc.).
But if you also serialize the actual business object, then you'll end up with TWO byte streams containing the same data. When you deserialize you'll get TWO object graphs. The sorted list will NOT point to the actual business objects any more, but rather to a copy of the business objects.
This is why I didn't make SortedBindingList serializable - because it isn't real obvious that this would happen, and I can easily envision all sorts of unintended consequences coming from this - hard to find bugs, etc. Things where the user edits an object and then you call Save() and the changes aren't saved - because the user changed the copy rather than the real object - that sort of thing...
Rocky