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
- webeventbuffer.cs
- SqlDuplicator.cs
- DataGridViewCellEventArgs.cs
- Parser.cs
- ImageEditor.cs
- MultitargetUtil.cs
- ArgumentValue.cs
- SecurityDocument.cs
- SystemColors.cs
- GridViewEditEventArgs.cs
- JapaneseCalendar.cs
- SqlMethods.cs
- DetailsViewPageEventArgs.cs
- DesignerDataParameter.cs
- WsatStrings.cs
- StringUtil.cs
- Cursors.cs
- XamlFigureLengthSerializer.cs
- Operators.cs
- DeleteHelper.cs
- SchemaElementLookUpTableEnumerator.cs
- KeyValuePair.cs
- WindowsPrincipal.cs
- WinFormsUtils.cs
- AbstractExpressions.cs
- Polygon.cs
- SqlCacheDependencyDatabaseCollection.cs
- StackSpiller.cs
- SapiRecoInterop.cs
- UInt16Converter.cs
- DataContractSerializer.cs
- PersistenceTask.cs
- PaintValueEventArgs.cs
- PointConverter.cs
- ButtonFlatAdapter.cs
- SurrogateSelector.cs
- PathTooLongException.cs
- RegistrationServices.cs
- ExecutionEngineException.cs
- WeakReferenceEnumerator.cs
- WizardStepBase.cs
- PropertyValueChangedEvent.cs
- ManipulationPivot.cs
- DataGridViewSelectedColumnCollection.cs
- PrePostDescendentsWalker.cs
- XmlNotation.cs
- DynamicPropertyReader.cs
- CodeNamespaceImport.cs
- FunctionMappingTranslator.cs
- ListViewTableCell.cs
- DesignColumn.cs
- SchemaEntity.cs
- GlobalAllocSafeHandle.cs
- FrameworkElement.cs
- PriorityQueue.cs
- WebConvert.cs
- CurrentChangingEventManager.cs
- SetStoryboardSpeedRatio.cs
- ApplicationCommands.cs
- SkipQueryOptionExpression.cs
- HttpClientProtocol.cs
- SystemColors.cs
- PropertyToken.cs
- WindowsAuthenticationModule.cs
- NullRuntimeConfig.cs
- EdmType.cs
- ToolboxItemWrapper.cs
- SchemaContext.cs
- ResourceSet.cs
- KnowledgeBase.cs
- PriorityRange.cs
- MetadataArtifactLoaderComposite.cs
- ArgumentException.cs
- InputScopeNameConverter.cs
- TypeSystemProvider.cs
- LinearQuaternionKeyFrame.cs
- PolicyLevel.cs
- _Semaphore.cs
- CollectionBase.cs
- ValidationRuleCollection.cs
- SecurityIdentifierConverter.cs
- OciLobLocator.cs
- ImpersonateTokenRef.cs
- BaseProcessor.cs
- XmlHierarchicalDataSourceView.cs
- SubstitutionDesigner.cs
- CodeActivityContext.cs
- ClientBuildManager.cs
- FormatterServices.cs
- PropertyValue.cs
- ReferenceAssemblyAttribute.cs
- WsdlBuildProvider.cs
- CollectionDataContractAttribute.cs
- TrackingMemoryStream.cs
- Misc.cs
- TableLayoutCellPaintEventArgs.cs
- ReadOnlyHierarchicalDataSourceView.cs
- peersecurityelement.cs
- ImageSource.cs
- XmlUtil.cs