My design style is to split the business layer into 2 parts, the Application layer (which contains all the publicly creatable classes) and the Domain layer, which contains the actual objects that run across applications (think of them as the pure business objects). The Application layer handles the rehydration of the Messages and then translates them to the business objects, which then solves the public creator issues with XML Serialization.
Don =================================== This list is hosted by DevelopMentorŪ http://www.develop.com Some .NET courses you may be interested in: Essential .NET: building applications and components with C# November 29 - December 3, in Los Angeles http://www.develop.com/courses/edotnet View archives and manage your subscription(s) at http://discuss.develop.com