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
- XmlSignatureProperties.cs
- _OSSOCK.cs
- PlatformCulture.cs
- MimeXmlImporter.cs
- XmlSchemaException.cs
- WebPartConnectionsEventArgs.cs
- ClipboardData.cs
- Graphics.cs
- namescope.cs
- EventTrigger.cs
- TextDpi.cs
- XmlSchemaSet.cs
- _UncName.cs
- AmbientValueAttribute.cs
- XmlChildEnumerator.cs
- TreeNodeCollection.cs
- StoreContentChangedEventArgs.cs
- MetadataItemSerializer.cs
- XPathParser.cs
- AttributeSetAction.cs
- DictionaryEntry.cs
- BitmapImage.cs
- Button.cs
- mediaeventargs.cs
- ObjectDataSourceStatusEventArgs.cs
- SQLByteStorage.cs
- XmlDataSource.cs
- ProjectedSlot.cs
- MonitorWrapper.cs
- WriteFileContext.cs
- ReferenceService.cs
- MaskedTextProvider.cs
- validationstate.cs
- AuthorizationRuleCollection.cs
- XdrBuilder.cs
- BypassElement.cs
- XmlSecureResolver.cs
- TextEffect.cs
- OutgoingWebRequestContext.cs
- StreamingContext.cs
- ControlDesignerState.cs
- Cursor.cs
- EntityTransaction.cs
- RectAnimation.cs
- WebBaseEventKeyComparer.cs
- EncoderReplacementFallback.cs
- ColumnHeader.cs
- ResourceDescriptionAttribute.cs
- GacUtil.cs
- EventArgs.cs
- Win32.cs
- TextStore.cs
- WriteTimeStream.cs
- ExpressionDumper.cs
- StateFinalizationDesigner.cs
- GrammarBuilderWildcard.cs
- XmlDomTextWriter.cs
- WebRequestModuleElement.cs
- TextEditorTables.cs
- EditorAttribute.cs
- Control.cs
- TextEditorTyping.cs
- HtmlTextArea.cs
- ToolStripComboBox.cs
- CompilerTypeWithParams.cs
- MimeMultiPart.cs
- Label.cs
- BinaryWriter.cs
- Membership.cs
- Activator.cs
- StrokeFIndices.cs
- BuildManager.cs
- ObjectContext.cs
- TitleStyle.cs
- ASCIIEncoding.cs
- _NetworkingPerfCounters.cs
- QueryLifecycle.cs
- Native.cs
- FixedSOMTextRun.cs
- TreeBuilderBamlTranslator.cs
- RawStylusInput.cs
- DataTransferEventArgs.cs
- OrthographicCamera.cs
- InputReport.cs
- ViewBase.cs
- SecurityHelper.cs
- XamlDesignerSerializationManager.cs
- SiteMapSection.cs
- ObjectStateEntryDbDataRecord.cs
- SchemaContext.cs
- HtmlTernaryTree.cs
- Pens.cs
- FocusTracker.cs
- TypeProvider.cs
- ImageIndexConverter.cs
- BuildProviderAppliesToAttribute.cs
- Decoder.cs
- StatusBarAutomationPeer.cs
- IISMapPath.cs
- AttributeExtensions.cs