public static String Save(IWorkflow workflow) { var output = new StringWriter(); using (var writer = XmlWriter.Create(output, new XmlWriterSettings { Indent = true })) { var xamlSchemaContext = new CustomXamlSchemaContext(); using (var xamlWriter = new XamlXmlWriter(writer, xamlSchemaContext)) { XamlServices.Save(xamlWriter, workflow); } } return output.ToString(); }
public static IWorkflow Parse(String xaml) { var input = new StringReader(xaml); using (XmlReader reader = XmlReader.Create(input)) { var xamlSchemaContext = new CustomXamlSchemaContext(); using (var xamlReader = new XamlXmlReader(reader, xamlSchemaContext)) { var xamlWriter = new CustomXamlObjectWriter(xamlSchemaContext); XamlServices.Transform(xamlReader, xamlWriter); return xamlWriter.Result as IWorkflow; } } }
public CustomXamlObjectWriter(CustomXamlSchemaContext schemaContext) : base(schemaContext) { _stack = schemaContext.Stack; }