You often read on the web that the DependencyObjects are not marked as serializable and that this is a major drawback of them...

But there is a easy way to perform a serialization of these object : use XAMLWriter and XAMLReader :

public class MyDependencyObject : DependencyObject
public static readonly DependencyProperty MyDependencyPropertyProperty =
  DependencyProperty.Register("MyDependencyProperty", typeof(String), typeof(MyDependencyObject));
  public String MyDependencyProperty
    get { return (String)GetValue(MyDependencyObject.MyDependencyPropertyProperty); }
    set { SetValue(MyDependencyObject.MyDependencyPropertyProperty, value); }
MyDependencyObject obj = new MyDependencyObject();
obj.MyDependencyProperty = "One love";
String serializedString = XamlWriter.Save(obj);

It will produce something like this :

<MyDependencyObject MyDependencyProperty="One love" xmlns="clr-namespace:ANTOINE.Jonathan;assembly=ANTOINE.Jonathan" />

Shout it kick it on