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
- NextPreviousPagerField.cs
- ComponentTray.cs
- HebrewCalendar.cs
- AutoCompleteStringCollection.cs
- DiscoveryClientReferences.cs
- ScopedMessagePartSpecification.cs
- EntityContainerRelationshipSetEnd.cs
- MetadataArtifactLoader.cs
- ConfigXmlElement.cs
- FigureParaClient.cs
- CalloutQueueItem.cs
- DeferredTextReference.cs
- ImpersonationContext.cs
- PostBackOptions.cs
- DownloadProgressEventArgs.cs
- GeometryModel3D.cs
- BaseDataBoundControl.cs
- GridViewDeletedEventArgs.cs
- SourceInterpreter.cs
- Keyboard.cs
- SqlTriggerContext.cs
- Ref.cs
- _BaseOverlappedAsyncResult.cs
- FtpWebResponse.cs
- BaseResourcesBuildProvider.cs
- AvTraceDetails.cs
- XPathParser.cs
- SamlAuthorizationDecisionStatement.cs
- KnownTypes.cs
- GetMemberBinder.cs
- WebPartVerbsEventArgs.cs
- PtsHost.cs
- ComboBox.cs
- SetterBase.cs
- Byte.cs
- TypeDependencyAttribute.cs
- KeyProperty.cs
- XPathScanner.cs
- DiagnosticTraceSchemas.cs
- ReadOnlyPermissionSet.cs
- Metadata.cs
- HtmlControl.cs
- DeclarativeCatalogPart.cs
- GlobalizationAssembly.cs
- RubberbandSelector.cs
- DispatchChannelSink.cs
- Thickness.cs
- TypeDelegator.cs
- GridErrorDlg.cs
- CryptoConfig.cs
- SHA1CryptoServiceProvider.cs
- AQNBuilder.cs
- TypeBuilder.cs
- MarkupExtensionParser.cs
- CallContext.cs
- DesignerImageAdapter.cs
- DataKeyCollection.cs
- NoneExcludedImageIndexConverter.cs
- FileDetails.cs
- TextDecoration.cs
- SelectionGlyphBase.cs
- PenContexts.cs
- Comparer.cs
- Matrix3DConverter.cs
- TraceLog.cs
- LinqDataSourceDeleteEventArgs.cs
- DiagnosticsConfiguration.cs
- ComponentCommands.cs
- Vector3DCollectionConverter.cs
- DiscoveryRequestHandler.cs
- DataTemplateKey.cs
- PieceDirectory.cs
- DataGridViewAddColumnDialog.cs
- Marshal.cs
- SubMenuStyle.cs
- ByteFacetDescriptionElement.cs
- XmlConvert.cs
- FixedDSBuilder.cs
- WindowsGraphicsCacheManager.cs
- ContentIterators.cs
- UriParserTemplates.cs
- AVElementHelper.cs
- PropertyMap.cs
- HelpProvider.cs
- PartialCachingControl.cs
- GCHandleCookieTable.cs
- Font.cs
- GeneralTransform.cs
- DecimalFormatter.cs
- MappingModelBuildProvider.cs
- Mutex.cs
- BoundsDrawingContextWalker.cs
- PersonalizationState.cs
- Pair.cs
- BaseTemplateCodeDomTreeGenerator.cs
- ProxyWebPartManager.cs
- rsa.cs
- COSERVERINFO.cs
- SqlTriggerContext.cs
- VirtualPathProvider.cs