Thursday, 14 March 2013

Sample class: Clone a generic list of strings with xamlwriter and xamlreader

This is how to do it. Use it like this:

ListOfStrings.HelloWorld();

"
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WpfApplication1
{
        public class ListOfStrings : List<string>
        {
                public static void HelloWorld()
                {
                        // Create listOfStrings object
                        ListOfStrings listOfStrings = new ListOfStrings();
                        listOfStrings.Add("Hello world");
                        listOfStrings.Add("Hello world once more");
                       
                        // Serialize it with xaml writer
                        var xamlSerializedListOfStrings = System.Windows.Markup.XamlWriter.Save(listOfStrings);
 
                        // Deserialize serialized string with xaml reader
                        object deserializedListOfStringsObject = System.Windows.Markup.XamlReader.Parse(xamlSerializedListOfStrings);
                       
                        // Test for correct deserialized type
                        if (deserializedListOfStringsObject is ListOfStrings)
                        {
                               // OK, cast it from object to ListOfStrings
                               ListOfStrings listOfStringsClone = (ListOfStrings)deserializedListOfStringsObject;
                        }
                }
        }
}
"

No comments: