public static string SerializeToXaml(object objectToSerialize, bool fullyQualifiedClrNamespaces = true) { var stringWriter = new StringWriter(); var xamlSchemaContextCWithFullyQualifiedNameSupport = new XamlSchemaContext(new XamlSchemaContextSettings { FullyQualifyAssemblyNamesInClrNamespaces = fullyQualifiedClrNamespaces }); using (var xmlWriter = XmlWriter.Create(stringWriter, new XmlWriterSettings { Indent = true, OmitXmlDeclaration = true })) using (var xamlWriter = new XamlXmlWriter(xmlWriter, xamlSchemaContextCWithFullyQualifiedNameSupport)) using (var builderWriter = ActivityXamlServices.CreateBuilderWriter(xamlWriter)) // transform to x:Class representation using (var objectReader = new XamlObjectReader(objectToSerialize, xamlSchemaContextCWithFullyQualifiedNameSupport)) { XamlServices.Transform(objectReader, builderWriter); return stringWriter.ToString(); } }
private static void InternalPrepareForUpdate(object definitionToBeUpdated, bool forImplementation) { // Clone the definition object clone; using (XamlObjectReader reader = new XamlObjectReader(definitionToBeUpdated)) { using (XamlObjectWriter writer = new XamlObjectWriter(reader.SchemaContext)) { XamlServices.Transform(reader, writer); clone = writer.Result; } } // Calculate the match info // Set the match info as attached properties so it is serializable, // and available when the user calls CreateUpdateMap IDictionary<object, DynamicUpdateMapItem> mapItems; if (!forImplementation) { DynamicUpdateInfo.SetOriginalDefinition(definitionToBeUpdated, (Activity)clone); mapItems = DynamicUpdateMap.CalculateMapItems((Activity)definitionToBeUpdated); } else { DynamicUpdateInfo.SetOriginalActivityBuilder(definitionToBeUpdated, (ActivityBuilder)clone); mapItems = DynamicUpdateMap.CalculateImplementationMapItems(GetDynamicActivity((ActivityBuilder)definitionToBeUpdated)); } foreach (KeyValuePair<object, DynamicUpdateMapItem> objectInfo in mapItems) { DynamicUpdateInfo.SetMapItem(objectInfo.Key, objectInfo.Value); } }
public void ReadSubtree3 () { var xr = new XamlObjectReader (5); xr.Read (); xr.Read (); var sr = xr.ReadSubtree (); Assert.AreEqual (XamlNodeType.None, sr.NodeType, "#1-2"); Assert.AreEqual (XamlNodeType.StartObject, xr.NodeType, "#1-3"); Assert.IsTrue (sr.Read (), "#2"); Assert.AreEqual (XamlNodeType.StartObject, sr.NodeType, "#2-2"); Assert.AreEqual (XamlNodeType.StartObject, xr.NodeType, "#2-3"); Assert.IsTrue (sr.Read (), "#3"); Assert.AreEqual (XamlNodeType.StartMember, sr.NodeType, "#3-2"); Assert.AreEqual (XamlNodeType.StartMember, xr.NodeType, "#3-3"); Assert.IsTrue (sr.Read (), "#4"); Assert.AreEqual (XamlNodeType.Value, sr.NodeType, "#4-2"); Assert.AreEqual (XamlNodeType.Value, xr.NodeType, "#4-3"); Assert.IsTrue (sr.Read (), "#5"); Assert.AreEqual (XamlNodeType.EndMember, sr.NodeType, "#5-2"); Assert.AreEqual (XamlNodeType.EndMember, xr.NodeType, "#5-3"); Assert.IsTrue (sr.Read (), "#6"); Assert.AreEqual (XamlNodeType.EndObject, sr.NodeType, "#6-2"); Assert.AreEqual (XamlNodeType.EndObject, xr.NodeType, "#6-3"); Assert.IsFalse (sr.Read (), "#7"); Assert.AreEqual (XamlNodeType.None, xr.NodeType, "#7-2"); }
public static void Save(XamlWriter xamlWriter, object instance) { if (xamlWriter == null) { throw new ArgumentNullException("xamlWriter"); } var r = new XamlObjectReader(instance, xamlWriter.SchemaContext); Transform(r, xamlWriter); }
public static void Save(XamlWriter writer, object instance) { if (writer == null) { throw new ArgumentNullException(nameof(writer)); } XamlObjectReader objectReader = new XamlObjectReader(instance, writer.SchemaContext); Transform(objectReader, writer); }
public void ReadSubtree1 () { var xr = new XamlObjectReader (5); var sr = xr.ReadSubtree (); Assert.AreEqual (XamlNodeType.None, sr.NodeType, "#1-2"); Assert.AreEqual (XamlNodeType.None, xr.NodeType, "#1-3"); Assert.IsTrue (sr.Read (), "#2"); Assert.AreEqual (XamlNodeType.None, sr.NodeType, "#2-2"); Assert.AreEqual (XamlNodeType.None, xr.NodeType, "#2-3"); Assert.IsFalse (sr.Read (), "#3"); Assert.AreEqual (XamlNodeType.NamespaceDeclaration, xr.NodeType, "#3-2"); }
public MainWindow() { InitializeComponent(); using (var reader = new XamlXmlReader("./Button.xaml")) using (var writer = new XamlXmlWriter(new FileStream("./Test.xaml", FileMode.Create), reader.SchemaContext)) { while (reader.Read()) { writer.WriteNode(reader); } } using (var reader = new XamlObjectReader(new Button())) using (var writer = new XamlObjectWriter(reader.SchemaContext)) { while (reader.Read()) { writer.WriteNode(reader); } var button = (Button)writer.Result; } using (var reader = new XamlXmlReader(new StringReader("<Button xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\">This is a button</Button>"))) using (var writer = new XamlObjectWriter(reader.SchemaContext)) { while (reader.Read()) { writer.WriteNode(reader); } var button = (Button)writer.Result; } var button1 = (Button)XamlServices.Load("./Button.xaml"); var button2 = XamlServices.Load(new XamlObjectReader(new Button())); var button3 = XamlServices.Load(new StringReader("<Button xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\">This is a button</Button>")); var button4 = XamlServices.Parse("<Button xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\">This is a button</Button>"); XamlServices.Save("./Test2.xaml", new Button()); //DispatcherObject methods, hidden from intellisense via the EditorBrowsableAttribute button1.CheckAccess(); button1.VerifyAccess(); }
public void GetService () { var obj = new TestValueSerialized (); var xr = new XamlObjectReader (obj); while (!xr.IsEof) xr.Read (); Assert.IsNotNull (Context, "premise#1"); GetServiceCoreReader (); Context = null; var ctx = new XamlSchemaContext (); var xw = new XamlObjectWriter (ctx); var xt = ctx.GetXamlType (obj.GetType ()); xw.WriteStartObject (xt); xw.WriteStartMember (XamlLanguage.Initialization); xw.WriteValue ("v"); xw.WriteEndMember (); xw.Close (); Assert.IsNotNull (Provider, "premise#2"); // cannot get Context, it does not give IValueSerializerContext in the test. GetServiceCoreWriter (); }
public void Read_NamedItems2 () { // i1 // - i2 // -- i3 // - i4 // -- i3 var obj = new NamedItem2 ("i1"); var obj2 = new NamedItem2 ("i2"); var obj3 = new NamedItem2 ("i3"); var obj4 = new NamedItem2 ("i4"); obj.References.Add (obj2); obj.References.Add (obj4); obj2.References.Add (obj3); obj4.References.Add (obj3); var xr = new XamlObjectReader (obj); Read_NamedItems2 (xr, true); }
public void Read_EventContainer () { var obj = new EventContainer (); obj.Run += delegate { Console.Error.WriteLine ("done"); }; var xr = new XamlObjectReader (obj); Read_EventContainer (xr); }
public void Read_NamedItems () { // foo // - bar // -- foo // - baz var obj = new NamedItem ("foo"); var obj2 = new NamedItem ("bar"); obj.References.Add (obj2); obj.References.Add (new NamedItem ("baz")); obj2.References.Add (obj); var xr = new XamlObjectReader (obj); Read_NamedItems (xr, true); }
public void Read_StaticExtensionWrapper () { var obj = new StaticExtensionWrapper () { Param = new StaticExtension ("StaticExtensionWrapper.Foo") }; var r = new XamlObjectReader (obj); Read_StaticExtensionWrapper (r); }
public void Read_TypeExtensionWrapper () { var obj = new TypeExtensionWrapper () { Param = new TypeExtension ("Foo") }; var r = new XamlObjectReader (obj); Read_TypeExtensionWrapper (r); }
[Test] // List contents are (sort of) treated as top-level too, so it is not serialized as IXmlSerializable(!) public void Read_ListXmlSerializable () { var obj = new List<XmlSerializable> (); obj.Add (new XmlSerializable ("<root/>")); var xr = new XamlObjectReader (obj); Read_ListXmlSerializable (xr); }
public void Read_ArgumentAttributed () { var obj = new ArgumentAttributed ("foo", "bar"); var r = new XamlObjectReader (obj); Read_ArgumentAttributed (r, obj); }
public void Read_ListWrapper () { var obj = new ListWrapper (new List<int> (new int [] {5, -3, 0})); var r = new XamlObjectReader (obj); Read_ListWrapper (r); }
// from initial to StartObject protected void Read_CommonXamlType (XamlObjectReader r) { Read_CommonXamlType (r, delegate { Assert.IsNull (r.Instance, "ct#4"); }); }
public void PositionalParameters2 () { var obj = new PositionalParametersWrapper ("foo", 5); var r = new XamlObjectReader (obj); PositionalParameters2 (r); }
public void ComplexPositionalParameters () { var obj = new ComplexPositionalParameterWrapper () { Param = new ComplexPositionalParameterClass (new ComplexPositionalParameterValue () { Foo = "foo" })}; var r = new XamlObjectReader (obj); ComplexPositionalParameters (r); }
public void PositionalParameters1 () { // Note: this can be read, but cannot be written to XML. var obj = new PositionalParametersClass1 ("foo", 5); var r = new XamlObjectReader (obj); PositionalParameters1 (r); }
public void Read_Dictionary2 () { var obj = new Dictionary<string,Type> (); obj ["Foo"] = typeof (int); obj ["Bar"] = typeof (Dictionary<Type,XamlType>); var r = new XamlObjectReader (obj); Read_Dictionary2 (r, XamlLanguage.PositionalParameters); }
public void Read_Dictionary () { var obj = new Dictionary<string,object> (); obj ["Foo"] = 5.0; obj ["Bar"] = -6.5; var r = new XamlObjectReader (obj); Read_Dictionary (r); }
public void Read_XmlSerializableWrapper () { var obj = new XmlSerializableWrapper (new XmlSerializable ("<root/>")); var xr = new XamlObjectReader (obj); Read_XmlSerializableWrapper (xr, true); }
/// <summary> /// Save the activity template into its XAML representation. /// </summary> /// <param name="activityTemplate">The activity template to be saved.</param> /// <returns>The XAML representation of the activity template.</returns> public static string SaveActivityTemplate(ActivityTemplateFactoryBuilder activityTemplate) { XamlSchemaContext xsc = new XamlSchemaContext(); using (XamlReader reader = new XamlObjectReader(activityTemplate, xsc)) { using (StringWriter textWriter = new StringWriter(CultureInfo.InvariantCulture)) { using (XmlWriter xmlWriter = XmlWriter.Create(textWriter, new XmlWriterSettings { Indent = true })) { using (XamlWriter xamlWriter = new XamlXmlWriter(xmlWriter, xsc)) { using (ActivityTemplateFactoryBuilderWriter builderWriter = new ActivityTemplateFactoryBuilderWriter(xamlWriter, xsc)) { XamlServices.Transform(reader, builderWriter); } } } return textWriter.ToString(); } } }
[Test] // If it is root, it is not serialized as IXmlSerializable. public void Read_XmlSerializable () { var obj = new XmlSerializable ("<root/>"); var xr = new XamlObjectReader (obj); Read_XmlSerializable (xr); }
public void Read_CustomMarkupExtension5 () { // This cannot be written to XamlXmlWriter though... var r = new XamlObjectReader (new MyExtension5 ("foo", "bar")); Read_CustomMarkupExtension5 (r); }
protected void Read_CommonXamlPrimitive (object obj) { var r = new XamlObjectReader (obj); Read_CommonXamlType (r); Read_Initialization (r, obj); }
public void Read_CustomMarkupExtension6 () { var r = new XamlObjectReader (new MyExtension6 ("foo")); Read_CustomMarkupExtension6 (r); }
public static void Save (XamlWriter xamlWriter, object instance) { if (xamlWriter == null) throw new ArgumentNullException ("xamlWriter"); var r = new XamlObjectReader (instance, xamlWriter.SchemaContext); Transform (r, xamlWriter); }
public void Read_ContentIncluded () { var obj = new ContentIncludedClass () { Content = "foo" }; var r = new XamlObjectReader (obj); Read_ContentIncluded (r); }
public void Read_ListWrapper2 () // read-write list member. { var obj = new ListWrapper2 (new List<int> (new int [] {5, -3, 0})); var r = new XamlObjectReader (obj); Read_ListWrapper2 (r); }
public void Read_PropertyDefinition () { var obj = new PropertyDefinition () { Modifier = "protected", Name = "foo", Type = XamlLanguage.String }; var r = new XamlObjectReader (obj); Read_PropertyDefinition (r); }