Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / MS / Internal / Globalization / BamlResourceSerializer.cs / 1 / BamlResourceSerializer.cs
//-------------------------------------------------------- // Class that implements BamlResourceSerializer // // Created: Garyyang @ 12/1/2003 // //------------------------------------------------------- using System; using System.IO; using System.Globalization; using System.Runtime.InteropServices; using System.Collections; using System.Collections.Generic; using System.Windows.Markup; using System.Windows.Markup.Localizer; using System.Diagnostics; using System.Text; using System.Windows; namespace MS.Internal.Globalization { ////// BamlResourceSerializer /// internal sealed class BamlResourceSerializer { //------------------------------- // Internal static //------------------------------- internal static void Serialize(BamlLocalizer localizer, BamlTree tree, Stream output) { // Thread safe implementation (new BamlResourceSerializer()).SerializeImp(localizer, tree, output); } //---------------------------------- // constructor. //---------------------------------- ////// constructor /// private BamlResourceSerializer() { } //---------------------------------- // private method //---------------------------------- ////// Serialize the tree out to the stream. /// private void SerializeImp( BamlLocalizer localizer, BamlTree tree, Stream output ) { Debug.Assert(output != null, "The output stream given is null"); Debug.Assert(tree != null && tree.Root != null, "The tree to be serialized is null."); _writer = new BamlWriter(output); _bamlTreeStack = new Stack(); // intialize the stack. _bamlTreeStack.Push(tree.Root); while (_bamlTreeStack.Count > 0) { BamlTreeNode currentNode = _bamlTreeStack.Pop(); if (!currentNode.Visited) { // Mark this node so that it won't be serialized again. currentNode.Visited = true; currentNode.Serialize(_writer); PushChildrenToStack(currentNode.Children); } else { BamlStartElementNode elementNode = currentNode as BamlStartElementNode; Debug.Assert(elementNode != null); if (elementNode != null) { localizer.RaiseErrorNotifyEvent( new BamlLocalizerErrorNotifyEventArgs( BamlTreeMap.GetKey(elementNode), BamlLocalizerError.DuplicateElement ) ); } } } // do not close stream as we don't own it. } private void PushChildrenToStack(List children) { if (children == null) return; for (int i = children.Count - 1; i >= 0; i--) { _bamlTreeStack.Push(children[i]); } } //--------------------------------- // private //--------------------------------- private BamlWriter _writer; private Stack _bamlTreeStack; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //-------------------------------------------------------- // Class that implements BamlResourceSerializer // // Created: Garyyang @ 12/1/2003 // //------------------------------------------------------- using System; using System.IO; using System.Globalization; using System.Runtime.InteropServices; using System.Collections; using System.Collections.Generic; using System.Windows.Markup; using System.Windows.Markup.Localizer; using System.Diagnostics; using System.Text; using System.Windows; namespace MS.Internal.Globalization { /// /// BamlResourceSerializer /// internal sealed class BamlResourceSerializer { //------------------------------- // Internal static //------------------------------- internal static void Serialize(BamlLocalizer localizer, BamlTree tree, Stream output) { // Thread safe implementation (new BamlResourceSerializer()).SerializeImp(localizer, tree, output); } //---------------------------------- // constructor. //---------------------------------- ////// constructor /// private BamlResourceSerializer() { } //---------------------------------- // private method //---------------------------------- ////// Serialize the tree out to the stream. /// private void SerializeImp( BamlLocalizer localizer, BamlTree tree, Stream output ) { Debug.Assert(output != null, "The output stream given is null"); Debug.Assert(tree != null && tree.Root != null, "The tree to be serialized is null."); _writer = new BamlWriter(output); _bamlTreeStack = new Stack(); // intialize the stack. _bamlTreeStack.Push(tree.Root); while (_bamlTreeStack.Count > 0) { BamlTreeNode currentNode = _bamlTreeStack.Pop(); if (!currentNode.Visited) { // Mark this node so that it won't be serialized again. currentNode.Visited = true; currentNode.Serialize(_writer); PushChildrenToStack(currentNode.Children); } else { BamlStartElementNode elementNode = currentNode as BamlStartElementNode; Debug.Assert(elementNode != null); if (elementNode != null) { localizer.RaiseErrorNotifyEvent( new BamlLocalizerErrorNotifyEventArgs( BamlTreeMap.GetKey(elementNode), BamlLocalizerError.DuplicateElement ) ); } } } // do not close stream as we don't own it. } private void PushChildrenToStack(List children) { if (children == null) return; for (int i = children.Count - 1; i >= 0; i--) { _bamlTreeStack.Push(children[i]); } } //--------------------------------- // private //--------------------------------- private BamlWriter _writer; private Stack _bamlTreeStack; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlResolver.cs
- DateTimeConverter.cs
- CultureInfo.cs
- WindowsGrip.cs
- Stack.cs
- CategoriesDocumentFormatter.cs
- ToolStripActionList.cs
- EditingMode.cs
- OperationInfo.cs
- HttpPostProtocolReflector.cs
- BaseAppDomainProtocolHandler.cs
- KeyToListMap.cs
- GacUtil.cs
- DependencyObject.cs
- DataGridViewTextBoxEditingControl.cs
- SoapMessage.cs
- WindowsSolidBrush.cs
- Soap.cs
- OdbcConnectionPoolProviderInfo.cs
- BmpBitmapEncoder.cs
- VerificationAttribute.cs
- ActiveDesignSurfaceEvent.cs
- BrowserCapabilitiesFactory.cs
- TableParagraph.cs
- PassportPrincipal.cs
- RouteParser.cs
- ZipFileInfo.cs
- FilteredDataSetHelper.cs
- SqlReorderer.cs
- LayoutInformation.cs
- SubstitutionList.cs
- MappingItemCollection.cs
- ZipIOLocalFileDataDescriptor.cs
- SettingsBase.cs
- CancellationHandlerDesigner.cs
- DelegateBodyWriter.cs
- WebHttpEndpointElement.cs
- MethodBody.cs
- XslAst.cs
- HijriCalendar.cs
- XamlTreeBuilder.cs
- TablePattern.cs
- OrderedDictionary.cs
- IteratorDescriptor.cs
- FileDialog_Vista.cs
- WebServiceHost.cs
- XmlCustomFormatter.cs
- XmlComment.cs
- ObservableCollectionDefaultValueFactory.cs
- WeakReference.cs
- EntityCommandDefinition.cs
- WaitHandle.cs
- SiteMapPath.cs
- TreeNodeBinding.cs
- Helpers.cs
- BulletChrome.cs
- WebHeaderCollection.cs
- BitmapEffectGroup.cs
- ScriptControlManager.cs
- EntityDataSourceWrapper.cs
- PhoneCallDesigner.cs
- COM2IDispatchConverter.cs
- CompModSwitches.cs
- _DisconnectOverlappedAsyncResult.cs
- ResourceWriter.cs
- ResXResourceSet.cs
- CacheEntry.cs
- Byte.cs
- CompositeDispatchFormatter.cs
- DuplexChannelBinder.cs
- ImmutableCollection.cs
- PlainXmlWriter.cs
- SymbolType.cs
- ConfigXmlText.cs
- ReachDocumentPageSerializer.cs
- ArrayMergeHelper.cs
- RegistrySecurity.cs
- XPathDocumentNavigator.cs
- DefaultPrintController.cs
- NullRuntimeConfig.cs
- odbcmetadatacolumnnames.cs
- SerializationFieldInfo.cs
- RenderData.cs
- QilCloneVisitor.cs
- Compiler.cs
- WrappingXamlSchemaContext.cs
- _HeaderInfo.cs
- IncrementalCompileAnalyzer.cs
- SocketException.cs
- BinaryObjectInfo.cs
- Stylesheet.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- HighlightVisual.cs
- UndirectedGraph.cs
- MenuItemCollection.cs
- SqlDataSourceEnumerator.cs
- Size.cs
- TextFormatterHost.cs
- AnnotationDocumentPaginator.cs
- BamlRecordHelper.cs