public void OptimizedList() { const string expected = #if CORE @"<?xml version=""1.0"" encoding=""utf-8""?><OptimizedNamespaceExtensionTests-ClassWithDifferingPropertyType xmlns:exs=""https://extendedxmlserializer.github.io/v2"" xmlns:ns1=""clr-namespace:System.Collections.Generic;assembly=System.Collections"" xmlns:sys=""https://extendedxmlserializer.github.io/system"" xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.ExtensionModel.Xml;assembly=ExtendedXmlSerializer.Tests""><Interface exs:type=""OptimizedNamespaceExtensionTests-GeneralImplementation""><Instance exs:type=""ns1:HashSet[sys:string]""><sys:string>Hello</sys:string><sys:string>World</sys:string><sys:string>Hope</sys:string><sys:string>This</sys:string><sys:string>Works!</sys:string></Instance></Interface></OptimizedNamespaceExtensionTests-ClassWithDifferingPropertyType>"; #else @"<?xml version=""1.0"" encoding=""utf-8""?><OptimizedNamespaceExtensionTests-ClassWithDifferingPropertyType xmlns:exs=""https://extendedxmlserializer.github.io/v2"" xmlns:ns1=""clr-namespace:System.Collections.Generic;assembly=System.Core"" xmlns:sys=""https://extendedxmlserializer.github.io/system"" xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.ExtensionModel.Xml;assembly=ExtendedXmlSerializer.Tests""><Interface exs:type=""OptimizedNamespaceExtensionTests-GeneralImplementation""><Instance exs:type=""ns1:HashSet[sys:string]""><sys:string>Hello</sys:string><sys:string>World</sys:string><sys:string>Hope</sys:string><sys:string>This</sys:string><sys:string>Works!</sys:string></Instance></Interface></OptimizedNamespaceExtensionTests-ClassWithDifferingPropertyType>"; #endif var instance = new ClassWithDifferingPropertyType { Interface = new GeneralImplementation { Instance = new HashSet <string> { "Hello", "World", "Hope", "This", "Works!" } } }; var serializer = new ConfigurationContainer().UseOptimizedNamespaces() .Create(); serializer.Serialize(instance) .Should() .Be(expected); serializer.Serialize(instance) .Should() .Be(expected); }
public void Execute(object parameter) { // Example var serializer = new ConfigurationContainer().UseOptimizedNamespaces() .Create(); var subject = new List <object> { new Subject { Message = "First" }, new Subject { Message = "Second" }, new Subject { Message = "Third" } }; var contents = serializer.Serialize(subject); // ... // EndExample var @default = new ConfigurationContainer().Create() .Serialize(new XmlWriterSettings { Indent = true }, subject); File.WriteAllText(@"bin\Extensibility.OptimizedNamepsaces.Default.xml", @default); var data = serializer.Serialize(new XmlWriterSettings { Indent = true }, subject); File.WriteAllText(@"bin\Extensibility.OptimizedNamepsaces.Optimized.xml", data); }
public void Execute(object parameter) { // Example IExtendedXmlSerializer serializer = new ConfigurationContainer().UseAutoFormatting() .Create(); SubjectWithThreeProperties subject = new SubjectWithThreeProperties { Message = "Hello World!", Number = 123, Time = DateTime.Now }; string contents = serializer.Serialize(subject); // ... // EndExample string @default = new ConfigurationContainer().Create() .Serialize(new XmlWriterSettings { Indent = true }, subject); File.WriteAllText(@"bin\Extensibility.AutoFormatting.Default.xml", @default); string data = serializer.Serialize(new XmlWriterSettings { Indent = true }, subject); File.WriteAllText(@"bin\Extensibility.AutoFormatting.Enabled.xml", data); }
public void EmptyItems() { var serializer = new ConfigurationContainer().ForTesting(); serializer.Serialize(new Subject()) .Should() .Be(@"<?xml version=""1.0"" encoding=""utf-8""?><Issue128Tests-Subject xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.ReportedIssues;assembly=ExtendedXmlSerializer.Tests"" />"); var instance = new Subject(); instance.Counts.Add(6776); serializer.Serialize(instance) .Should() .Be(@"<?xml version=""1.0"" encoding=""utf-8""?><Issue128Tests-Subject xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.ReportedIssues;assembly=ExtendedXmlSerializer.Tests""><Counts><int xmlns=""https://extendedxmlserializer.github.io/system"">6776</int></Counts></Issue128Tests-Subject>"); }
public void Execute(object parameter) { // Converter IExtendedXmlSerializer serializer = new ConfigurationContainer().Register(CustomStructConverter.Default).Create(); CustomStruct subject = new CustomStruct(123); string contents = serializer.Serialize(subject); // ... // EndConverter string data = serializer.Serialize(new XmlWriterSettings { Indent = true }, subject); File.WriteAllText(@"bin\Extensibility.Converters.xml", data); }
public void Execute(object parameter) { // Example IExtendedXmlSerializer serializer = new ConfigurationContainer().EnableParameterizedContent() .Create(); ParameterizedSubject subject = new ParameterizedSubject("Hello World!", 123, DateTime.Now); string contents = serializer.Serialize(subject); // ... // EndExample string data = serializer.Serialize(new XmlWriterSettings { Indent = true }, subject); File.WriteAllText(@"bin\Extensibility.ParameterizedContent.xml", data); }
public static void Run() { Program.PrintHeader("Serialization"); IExtendedXmlSerializer serializer = new ConfigurationContainer().Create(); // InitDictionary TestClass obj = new TestClass { Dictionary = new Dictionary <int, string> { { 1, "First" }, { 2, "Second" }, { 3, "Other" }, } }; // EndInitDictionary string xml = serializer.Serialize(new XmlWriterSettings { Indent = true }, obj); File.WriteAllText("bin\\DictianarySamples.xml", xml); Console.WriteLine(xml); Program.PrintHeader("Deserialization"); serializer.Deserialize <TestClass>(xml); serializer = new ConfigurationContainer().UseOptimizedNamespaces().Create(); xml = serializer.Serialize(new XmlWriterSettings() { Indent = true }, obj); File.WriteAllText("bin\\DictianarySamplesUseOptimizedNamespaces.xml", xml); }
public void Execute(object parameter) { // Example var serializer = new ConfigurationContainer().EnableAllConstructors() .Create(); var subject = SubjectByFactory.Create("Hello World!"); var contents = serializer.Serialize(subject); // ... // EndExample var data = serializer.Serialize(new XmlWriterSettings { Indent = true }, subject); File.WriteAllText(@"bin\Extensibility.PrivateConstructors.xml", data); }
public void Execute(object parameter) { List <Subject> legacy = new List <Subject> { new Subject { Message = "First" }, new Subject { Message = "Second" }, new Subject { Message = "Third" } }; #pragma warning disable 618 File.WriteAllText(@"bin\Upgrade.Example.v1.xml", new ExtendedXmlSerialization.ExtendedXmlSerializer().Serialize(legacy)); // Example ExtendedXmlSerialization.ExtendedXmlSerializer legacySerializer = new ExtendedXmlSerialization.ExtendedXmlSerializer(); string content = File.ReadAllText(@"bin\Upgrade.Example.v1.xml"); // Path to your legacy xml file. List <Subject> subject = legacySerializer.Deserialize <List <Subject> >(content); // Upgrade: IExtendedXmlSerializer serializer = new ConfigurationContainer().Create(); string contents = serializer.Serialize(new XmlWriterSettings { Indent = true }, subject); File.WriteAllText(@"bin\Upgrade.Example.v2.xml", contents); // ... // EndExample #pragma warning restore 618 }
public void DictionaryAttributes() { var serializer = new ConfigurationContainer() .Type <SimpleSubject>() .Member(x => x.Number, x => x.Attribute()) .Create(); var expected = new DictionaryWithProperties { { "First", 1 }, { "Second", 2 }, { "Other", 3 } }; expected.Message = HelloWorld; expected.Number = 6776; var data = serializer.Serialize(expected); var actual = serializer.Deserialize <DictionaryWithProperties>(data); Assert.NotNull(actual); Assert.Equal(HelloWorld, actual.Message); Assert.Equal(6776, actual.Number); Assert.Equal(expected.Count, actual.Count); foreach (var entry in actual) { Assert.Equal(expected[entry.Key], entry.Value); } }
void Verify() { var container = new ConfigurationContainer().EnableReaderContext() .ConfigureType <Owner>() .Member(x => x.Element) .Register(typeof(Serializer)) .Create(); var instance = new Owner { Element = new DatabaseObject { Id = Guid.NewGuid(), Table = "TableName", Creted = "Loader" } }; var content = container.Serialize(instance); var key = new XmlReaderFactory().Get(new MemoryStream(Encoding.UTF8.GetBytes(content))); var owner = Get(key); RestoreDatabaseObjects.Default.Execute(key); owner.ShouldBeEquivalentTo(instance); owner.Element.Table.Should() .Be("TableName"); Owner Get(XmlReader reader) { using (reader) { return((Owner)container.Deserialize(reader)); } } }
public bool SaveSattings() { lock (syncLoadSet) { try { IExtendedXmlSerializer serializer = new ConfigurationContainer().UseAutoFormatting() .UseOptimizedNamespaces() .EnableImplicitTyping(typeof(Setting)) .Create(); var document = serializer.Serialize(new XmlWriterSettings { Indent = true }, setting); using (StreamWriter writer = new StreamWriter(get_setting_file_patch())) { writer.WriteLine(document); } } catch (Exception ex) { Console.WriteLine("Error save setting: " + ex); } } return(true); }
private static void XmlSerializeInternal(Stream stream, object o, Encoding encoding) { if (o == null) { throw new ArgumentNullException("o"); } if (encoding == null) { throw new ArgumentNullException("encoding"); } IExtendedXmlSerializer serializer = new ConfigurationContainer() .EnableImplicitTyping(typeof(object)) .UseOptimizedNamespaces() .Create(); XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; settings.NewLineChars = "\r\n"; settings.Encoding = encoding; settings.IndentChars = " "; using (XmlWriter writer = XmlWriter.Create(stream, settings)) { serializer.Serialize(writer, o); writer.Close(); } }
public void Test1() { var patches = new List <PatchMapping>() { new PatchMapping() { Source = "File1.bin", Destination = "EFI\\Microsoft\\Boot", TargetPartition = TargetPartition.Boot, Condition = new Always(), } }; var serializer = new ConfigurationContainer() .EnableImplicitTypingFromNamespacePublic <PatchMapping>() .Create(); using (var xmlTextWriter = new XmlTextWriter("file.xml", Encoding.UTF8) { Formatting = Formatting.Indented }) { serializer.Serialize(xmlTextWriter, patches); } }
public void GenericDictionaryAttributes() { var serializer = new ConfigurationContainer() .Type <GenericDictionaryWithProperties <int, string> >() .Member(x => x.Message, x => x.Attribute()) .Member(x => x.Number, x => x.Attribute()) .Create(); var expected = new GenericDictionaryWithProperties <int, string> { { 1, "First" }, { 2, "Second" }, { 3, "Other" } }; expected.Message = HelloWorld; expected.Number = 6776; var data = serializer.Serialize(expected); var actual = serializer.Deserialize <GenericDictionaryWithProperties <int, string> >(data); Assert.NotNull(actual); Assert.Equal(HelloWorld, actual.Message); Assert.Equal(6776, actual.Number); Assert.Equal(expected.Count, actual.Count); foreach (var entry in actual) { Assert.Equal(expected[entry.Key], entry.Value); } }
public static Settings LoadSettings() { try { if (File.Exists(SettingsFileName)) { using (XmlReader reader = XmlReader.Create(SettingsFileName)) { IExtendedXmlSerializer serializer = new ConfigurationContainer().Create(); return((Settings)serializer.Deserialize(reader)); } } else { //creating example conf using (var writer = XmlWriter.Create(SettingsFileName, xmlWriterSettings)) { IExtendedXmlSerializer serializer = new ConfigurationContainer().Create(); Settings exampleSettings = new Settings(); exampleSettings.initDefaultSettings(); serializer.Serialize(writer, exampleSettings); writer.Flush(); } } } catch (Exception e) { MainWindow.HandleError("Error during write file (stats.xml)", e, false); } return(null); }
public void OptimizedDictionary() { const string expected = #if CORE @"<?xml version=""1.0"" encoding=""utf-8""?><OptimizedNamespaceExtensionTests-ClassWithDifferingPropertyType xmlns:exs=""https://extendedxmlserializer.github.io/v2"" xmlns:sys=""https://extendedxmlserializer.github.io/system"" xmlns:ns1=""clr-namespace:JetBrains.Annotations;assembly=JetBrains.Annotations"" xmlns:ns2=""clr-namespace:System.ComponentModel;assembly=System.ComponentModel"" xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.ExtensionModel.Xml;assembly=ExtendedXmlSerializer.Tests""><Interface exs:type=""OptimizedNamespaceExtensionTests-GeneralImplementation""><Instance exs:type=""sys:Dictionary[sys:Object,sys:Object]""><sys:Item><Key exs:type=""ns2:CancelEventArgs""><Cancel>false</Cancel></Key><Value exs:type=""ns1:UsedImplicitlyAttribute"" /></sys:Item></Instance></Interface></OptimizedNamespaceExtensionTests-ClassWithDifferingPropertyType>"; #else @"<?xml version=""1.0"" encoding=""utf-8""?><OptimizedNamespaceExtensionTests-ClassWithDifferingPropertyType xmlns:exs=""https://extendedxmlserializer.github.io/v2"" xmlns:sys=""https://extendedxmlserializer.github.io/system"" xmlns:ns1=""clr-namespace:JetBrains.Annotations;assembly=JetBrains.Annotations"" xmlns:ns2=""clr-namespace:System.ComponentModel;assembly=System"" xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.ExtensionModel.Xml;assembly=ExtendedXmlSerializer.Tests""><Interface exs:type=""OptimizedNamespaceExtensionTests-GeneralImplementation""><Instance exs:type=""sys:Dictionary[sys:Object,sys:Object]""><sys:Item><Key exs:type=""ns2:CancelEventArgs""><Cancel>false</Cancel></Key><Value exs:type=""ns1:UsedImplicitlyAttribute"" /></sys:Item></Instance></Interface></OptimizedNamespaceExtensionTests-ClassWithDifferingPropertyType>"; #endif var instance = new ClassWithDifferingPropertyType { Interface = new GeneralImplementation { Instance = new Dictionary <object, object> { { new CancelEventArgs(), new UsedImplicitlyAttribute() } } } }; var serializer = new ConfigurationContainer().UseOptimizedNamespaces() .Create(); var data = serializer.Serialize(instance); data.Should() .Be(expected); }
public void Execute(object parameter) { Program.PrintHeader("Serialization with Settings Override"); // Serialization IExtendedXmlSerializer serializer = new ConfigurationContainer().Create(); TestClass instance = new TestClass(); MemoryStream stream = new MemoryStream(); string contents = serializer.Serialize(new XmlWriterSettings { /* ... */ }, stream, instance); // EndSerialization Console.WriteLine(contents); Program.PrintHeader("Deserialization with Settings Override"); // Deserialization MemoryStream contentStream = new MemoryStream(Encoding.UTF8.GetBytes(contents)); TestClass deserialized = serializer.Deserialize <TestClass>(new XmlReaderSettings { /* ... */ }, contentStream); // EndDeserialization Console.WriteLine($"Object id = {deserialized.Id}"); }
public void Save(string fileName) { using (var stream = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite)) { var serializer = new ConfigurationContainer().Create(); serializer.Serialize(stream, this); } }
public static string ToXML2 <T>(T obj) { IExtendedXmlSerializer serializer = new ConfigurationContainer().Create(); return(serializer.Serialize(new XmlWriterSettings { Indent = true }, obj)); }
public void BasicArray() { var serializer = new ConfigurationContainer().EnableClassicMode().Create(); var expected = new[] { 1, 2, 3, 4, 5 }; var data = serializer.Serialize(expected); var actual = serializer.Deserialize <int[]>(data); Assert.Equal(expected, actual); }
public void Execute(object parameter) { // Example var serializer = new ConfigurationContainer().EnableImplicitTyping(typeof(Subject)) .Create(); var subject = new Subject { Message = "Hello World! No namespaces, yay!" }; var contents = serializer.Serialize(subject); // ... // EndExample var data = serializer.Serialize(new XmlWriterSettings { Indent = true }, subject); File.WriteAllText(@"bin\Extensibility.ImplicitTypes.xml", data); }
public void Execute(object parameter) { // Example var serializer = new ConfigurationContainer().EnableParameterizedContent() .Type <Tuple <string> >() .Member(x => x.Item1) .Name("Message") .Create(); var subject = Tuple.Create("Hello World!"); var contents = serializer.Serialize(subject); // ... // EndExample var data = serializer.Serialize(new XmlWriterSettings { Indent = true }, subject); File.WriteAllText(@"bin\Extensibility.Tuples.xml", data); }
public string Serialize <T>(T item) { IExtendedXmlSerializer serializer = new ConfigurationContainer() .UseAutoFormatting() .UseOptimizedNamespaces() .EnableImplicitTyping(typeof(T)) .Create(); return(serializer.Serialize(XmlWriterSettings, item)); }
public void Execute(object parameter) { // Example IExtendedXmlSerializer serializer = new ConfigurationContainer().Type <Subject>() .Member(x => x.Message) .Verbatim() .Create(); Subject subject = new Subject { Message = @"<{""Ilegal characters and such""}>" }; string contents = serializer.Serialize(subject); // ... // EndExample string @default = serializer.Serialize(new XmlWriterSettings { Indent = true }, subject); File.WriteAllText(@"bin\Extensibility.VerbatimContent.xml", @default); }
public void ShouldPreserveNullValueIfDefaultIsNotNull() { var serializer = new ConfigurationContainer().Emit(EmitBehaviors.Assigned).Create(); var xml = serializer.Serialize(new ClassWithDefaultString { Name = null }); var deserialized = serializer.Deserialize <ClassWithDefaultString>(xml); deserialized.Name.Should().BeNull(); }
public void BasicHashSet() { var serializer = new ConfigurationContainer().EnableClassicMode().Create(); var expected = new HashSet <string> { "Hello", "World", "Hope", "This", "Works!" }; var data = serializer.Serialize(expected); var actual = serializer.Deserialize <HashSet <string> >(data); Assert.True(actual.SetEquals(expected)); }
public void Verify() { var serializer = new ConfigurationContainer().UseAutoFormatting() .UseOptimizedNamespaces() .EnableReferences() .Create() .ForTesting(); var myRef = new Foo(); var instance = new Foo { Ref1 = myRef, Ref2 = myRef }; var first = serializer.Serialize(serializer.Cycle(instance)); var second = serializer.Serialize(serializer.Cycle(instance)); first.Should().Be(second); }
public DataXml SaveInXmlFormat(Data data) { DataXml dataXml = new DataXml(); foreach (var item in data) { var serializer = new ConfigurationContainer().Create(); var xml = serializer.Serialize(item); } return(dataXml); }
public string Serialize <T>(T item) { // using a 3rd party serializer 'cause the default one cannot serialize interfaces // https://github.com/ExtendedXmlSerializer/home IExtendedXmlSerializer serializer = new ConfigurationContainer() .UseAutoFormatting() .UseOptimizedNamespaces() .EnableImplicitTyping(typeof(T)) .Create(); return(serializer.Serialize(XmlWriterSettings, item)); }