MobileFormatter sort of uses the DCS, but first it converts your object model into a set of data transfer objects. This is necessary, because there's no workable private reflection in Silverlight, so it isn't normally possible to serialize private field values in objects.
I have some blog posts on this topic, which you can find from the FAQ
http://www.lhotka.net/cslanet/faq/SilverlightFaq.ashx
In the end this means that MobileFormatter only works with primitive values, values we special-cased (like Decimal, Guid, etc) and types that implement Csla.Core.IMobileObject.
Because it can be hard to implement IMobileObject correctly, there are several base types in Csla.Core that already do the work for you, including MobileObject, MobileList and MobileDictionary.
You may be able to use MobileDictionary for your purposes - or at least use its code as a template to enhance your existing dictionary type so it implements IMobileObject.
Copyright (c) Marimer LLC