Serialize DependencyObject : it's easy !
1 March 2010You 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); Console.WriteLine(serializedString);
It will produce something like this :
<MyDependencyObject MyDependencyProperty="One love" xmlns="clr-namespace:ANTOINE.Jonathan;assembly=ANTOINE.Jonathan" />