public static void Save(XmlWriter xmlWriter, object instance) { using (var writer = new XamlXmlWriter(xmlWriter, context)) { Save(writer, instance); } }
public static void Save(Stream stream, object instance) { using (var writer = new XamlXmlWriter(stream, context)) { Save(writer, instance); } }
public void SettingsNull() { // allowed. var w = new XamlXmlWriter(new MemoryStream(), sctx, null); Assert.AreEqual(sctx, w.SchemaContext, "#1"); Assert.IsNotNull(w.Settings, "#2"); }
public void StartObjectValue() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteValue("foo"); }
public void GetObjectAfterStartObject() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteGetObject(); }
private static void Save(XamlXmlWriter writer, object instance) { var readerSettings = new XamlObjectReaderSettings(); using (var reader = new XamlObjectReader(instance, context, readerSettings)) { XamlServices.Transform(reader, writer); } }
public void StartObjectWriteEndMember() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteEndMember(); }
public void EndObjectAfterNamespace() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteNamespace(new NamespaceDeclaration("urn:foo", "y")); Assert.Throws <InvalidOperationException> (() => xw.WriteEndObject()); }
public void StartMemberWriteEndObject() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteStartMember(xm); Assert.Throws <XamlXmlWriterException> (() => xw.WriteEndObject()); }
public void WriteValueAfterNullValue() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); Assert.Throws <XamlXmlWriterException> (() => xw.WriteValue(null)); //xw.WriteValue ("bar"); }
public void GetObjectOnNonCollection() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteStartMember(xm); Assert.Throws <InvalidOperationException> (() => xw.WriteGetObject()); }
public void InitWriteNamespace() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteNamespace(new NamespaceDeclaration("urn:foo", "x")); // ignored. xw.Close(); Assert.AreEqual("", sw.ToString(), "#1"); }
private static void Save(XamlXmlWriter writer, object instance) { var readerSettings = new XamlObjectReaderSettings(); using (var reader = new XamlObjectReader(instance, context, readerSettings)) { XamlServices.Transform(reader, writer); } }
public void WriteEndObjectExcess() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteEndObject(); xw.WriteEndObject(); }
public void GetObjectOnNonCollection() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteStartMember(xm); xw.WriteGetObject(); }
public void StartMemberWriteEndMember() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteStartMember(xm); xw.WriteEndMember(); // wow, really? }
public void WriteValueTypeNonString() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteStartMember(xm); xw.WriteValue(5); // even the type matches the member type, writing non-string value is rejected. }
public void EndObjectAfterNamespace() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteNamespace(new NamespaceDeclaration("urn:foo", "y")); xw.WriteEndObject(); }
public void WriteValueAfterNullValue() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteValue(null); xw.WriteValue("bar"); }
public void GetObjectOnNonCollection2() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteStartMember(new XamlMember(typeof(string).GetProperty("Length"), sctx)); // Length is of type int, which is not a collection xw.WriteGetObject(); }
void UpdateXaml() { var sb = new StringBuilder(); using (var xmlWriter = new XamlXmlWriter(sb)) { DesignSurface.SaveDesigner(xmlWriter); Text = XamlFormatter.Format(sb.ToString()); } }
/// <summary> /// Serialize an Activity to a Xaml string. /// </summary> public static string Serialize(this Activity activity) { var builder = new StringBuilder(); var writer = new XamlXmlWriter(new StringWriter(builder), new XamlSchemaContext()); var activityWriter = ActivityXamlServices.CreateBuilderWriter(writer); XamlServices.Save(activityWriter, activity); return(builder.ToString()); }
public string DecompileBaml(MemoryStream bamlCode, string containingAssemblyFile, ConnectMethodDecompiler connectMethodDecompiler, AssemblyResolver asmResolver) { this.asmResolver = asmResolver; AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolve; bamlCode.Position = 0; TextWriter w = new StringWriter(); Assembly assembly = Assembly.LoadFile(containingAssemblyFile); Baml2006Reader reader = new Baml2006Reader(bamlCode, new XamlReaderSettings() { ValuesMustBeString = true, LocalAssembly = assembly }); var xamlDocument = Parse(reader); string bamlTypeName = xamlDocument.OfType <XamlObjectNode>().First().Type.UnderlyingType.FullName; var eventMappings = connectMethodDecompiler.DecompileEventMappings(bamlTypeName); foreach (var xamlNode in xamlDocument) { RemoveConnectionIds(xamlNode, eventMappings, reader.SchemaContext); AvoidContentProperties(xamlNode); MoveXKeyToFront(xamlNode); } XDocument doc = new XDocument(); XamlXmlWriter writer = new XamlXmlWriter(doc.CreateWriter(), reader.SchemaContext, new XamlXmlWriterSettings { AssumeValidInput = true }); foreach (var xamlNode in xamlDocument) { xamlNode.WriteTo(writer); } writer.Close(); // Fix namespace references string suffixToRemove = ";assembly=" + assembly.GetName().Name; foreach (XAttribute attrib in doc.Root.Attributes()) { if (attrib.Name.Namespace == XNamespace.Xmlns) { if (attrib.Value.EndsWith(suffixToRemove, StringComparison.Ordinal)) { string newNamespace = attrib.Value.Substring(0, attrib.Value.Length - suffixToRemove.Length); ChangeXmlNamespace(doc, attrib.Value, newNamespace); attrib.Value = newNamespace; } } } return(doc.ToString()); }
public void ValueThenNamespace() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteStartMember(xm); xw.WriteValue("foo"); xw.WriteNamespace(new NamespaceDeclaration("y", "urn:foo")); // this does not raise an error (since it might start another object) }
[ExpectedException(typeof(InvalidOperationException))] // ... shouldn't it be XamlXmlWriterException? public void WriteValueAfterNamespace() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteStartMember(XamlLanguage.Initialization); xw.WriteNamespace(new NamespaceDeclaration("urn:foo", "y")); xw.WriteValue("foo"); }
public void WriteValueList() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(new XamlType(typeof(List <string>), sctx)); xw.WriteStartMember(XamlLanguage.Items); xw.WriteValue("foo"); xw.WriteValue("bar"); }
public void WriteStartObjectAfterTopLevel() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteEndObject(); // writing another root is not allowed. xw.WriteStartObject(xt); }
public void InitWriteStartObject() { string xml = @"<?xml version='1.0' encoding='utf-16'?><Int32 xmlns='http://schemas.microsoft.com/winfx/2006/xaml' />"; var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(new XamlType(typeof(int), sctx)); xw.Close(); Assert.AreEqual(xml, sw.ToString().Replace('"', '\''), "#1"); }
private void Export() { var sb = new StringBuilder(); using (var xmlWriter = new XamlXmlWriter(sb)) { designSurface.SaveDesigner(xmlWriter); } var xamlCode = sb.ToString(); }
void Initialize(XamlXmlWriter xamlXmlWriter) { this.xamlXmlWriter = xamlXmlWriter; settings = xamlXmlWriter.Settings; // This will clone, only want to do this once meSettings = meSettings ?? new XamlMarkupExtensionWriterSettings(); currentState = Start.State; sb = new StringBuilder(); nodes = new Stack <Node>(); failed = false; }
public void WriteStartObjectAfterTopLevel() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt); xw.WriteEndObject(); // writing another root is not allowed. Assert.Throws <XamlXmlWriterException> (() => xw.WriteStartObject(xt)); }
public void EndObjectAfterGetObject() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt2); xw.WriteStartMember(new XamlMember(typeof(Foo).GetProperty("Bar"), sctx)); xw.WriteGetObject(); xw.WriteEndObject(); }
public void EndMemberAfterGetObject() { var sw = new StringWriter(); var xw = new XamlXmlWriter(sw, sctx, null); xw.WriteStartObject(xt2); xw.WriteStartMember(new XamlMember(typeof(Foo).GetProperty("Bar"), sctx)); xw.WriteGetObject(); Assert.Throws <XamlXmlWriterException> (() => xw.WriteEndMember()); // ...!? }