public void DeserializeFromString(string xml) { InitializeOptionsList(); var buffer = Encoding.UTF8.GetBytes(xml); using (var memoryStream = new MemoryStream(buffer)) { var adapter = new XmlAdapter(memoryStream); var service = new OptionsDeserializationService(adapter); XmlSerializerExtensions.Adapter = adapter; adapter.Reader.ReadToFollowing(_options[0].GetType().Name); foreach (var option in _options) { var optionTree = adapter.Reader.ReadSubtree(); optionTree.Read(); service.DecodeObject(optionTree, option); optionTree.Close(); adapter.Reader.Read(); } } }
public static void DeserializeOptions(string xml, DatabaseSchemaView dbView, ISupportOptions withOptions) { var buffer = Encoding.UTF8.GetBytes(xml); using (var memoryStream = new MemoryStream(buffer)) { var adapter = new XmlAdapter(memoryStream); var service = new OptionsDeserializationService(adapter); XmlSerializerExtensions.Adapter = adapter; var metadataService = new MetadataDeserializationService(adapter); adapter.Reader.ReadToFollowing(Constants.BehaviorOptionsTag); var behaviorOptionsTree = adapter.Reader.ReadSubtree(); behaviorOptionsTree.Read(); service.DecodeObject(behaviorOptionsTree, withOptions.BehaviorOptions); behaviorOptionsTree.Close(); adapter.Reader.Read(); var dbViewOptionsTree = adapter.Reader.ReadSubtree(); dbViewOptionsTree.Read(); service.DecodeObject(dbViewOptionsTree, dbView.Options); dbViewOptionsTree.Close(); adapter.Reader.Read(); var designPaneOptionsTree = adapter.Reader.ReadSubtree(); designPaneOptionsTree.Read(); service.DecodeObject(designPaneOptionsTree, withOptions.DesignPaneOptions); designPaneOptionsTree.Close(); adapter.Reader.Read(); var visualOptionsTree = adapter.Reader.ReadSubtree(); visualOptionsTree.Read(); service.DecodeObject(visualOptionsTree, withOptions.VisualOptions); visualOptionsTree.Close(); adapter.Reader.Read(); var addObjectDialogOptionsTree = adapter.Reader.ReadSubtree(); addObjectDialogOptionsTree.Read(); service.DecodeObject(addObjectDialogOptionsTree, withOptions.AddObjectDialogOptions); addObjectDialogOptionsTree.Close(); adapter.Reader.Read(); var dataSourceOptionsTree = adapter.Reader.ReadSubtree(); dataSourceOptionsTree.Read(); service.DecodeObject(dataSourceOptionsTree, withOptions.DataSourceOptions); dataSourceOptionsTree.Close(); adapter.Reader.Read(); var metadataLoadingOptionsTree = adapter.Reader.ReadSubtree(); metadataLoadingOptionsTree.Read(); metadataService.DecodeMetadataLoadingOptions(metadataLoadingOptionsTree, withOptions.MetadataLoadingOptions); metadataLoadingOptionsTree.Close(); adapter.Reader.Read(); var metadataStructureOptionsTree = adapter.Reader.ReadSubtree(); metadataStructureOptionsTree.Read(); service.DecodeObject(metadataStructureOptionsTree, withOptions.MetadataStructureOptions); metadataStructureOptionsTree.Close(); adapter.Reader.Read(); var queryColumnListTree = adapter.Reader.ReadSubtree(); queryColumnListTree.Read(); service.DecodeObject(queryColumnListTree, withOptions.QueryColumnListOptions); queryColumnListTree.Close(); adapter.Reader.Read(); var queryNavBarTree = adapter.Reader.ReadSubtree(); queryNavBarTree.Read(); service.DecodeObject(queryNavBarTree, withOptions.QueryNavBarOptions); queryNavBarTree.Close(); adapter.Reader.Read(); var userInterfaceOptionsTree = adapter.Reader.ReadSubtree(); userInterfaceOptionsTree.Read(); service.DecodeObject(userInterfaceOptionsTree, withOptions.UserInterfaceOptions); userInterfaceOptionsTree.Close(); adapter.Reader.Read(); var sqlFormattingOptionsTree = adapter.Reader.ReadSubtree(); sqlFormattingOptionsTree.Read(); service.DecodeObject(sqlFormattingOptionsTree, withOptions.SqlFormattingOptions); sqlFormattingOptionsTree.Close(); adapter.Reader.Read(); var sqlGenerationOptionsTree = adapter.Reader.ReadSubtree(); sqlGenerationOptionsTree.Read(); service.DecodeObject(sqlGenerationOptionsTree, withOptions.SqlGenerationOptions); sqlGenerationOptionsTree.Close(); adapter.Reader.Read(); } }