Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- ResourceExpression.cs
- TextRangeBase.cs
- CollectionViewSource.cs
- VarRemapper.cs
- AdapterUtil.cs
- IPPacketInformation.cs
- GradientStop.cs
- DocumentOrderComparer.cs
- XmlDomTextWriter.cs
- DictionarySectionHandler.cs
- XmlILStorageConverter.cs
- FactoryMaker.cs
- PointAnimationUsingKeyFrames.cs
- OdbcPermission.cs
- DeferredSelectedIndexReference.cs
- DbParameterCollection.cs
- EntityContainerRelationshipSet.cs
- MetadataArtifactLoaderCompositeFile.cs
- ClipboardData.cs
- TripleDES.cs
- SspiNegotiationTokenProviderState.cs
- Policy.cs
- BulletedListEventArgs.cs
- PropertyIDSet.cs
- Journal.cs
- XPathDocumentIterator.cs
- MSG.cs
- TextBounds.cs
- TrackingServices.cs
- BaseValidator.cs
- XmlElementAttributes.cs
- ZoomPercentageConverter.cs
- MessageHeaderAttribute.cs
- SplineQuaternionKeyFrame.cs
- WindowsContainer.cs
- ScriptingProfileServiceSection.cs
- DbException.cs
- CdpEqualityComparer.cs
- TranslateTransform3D.cs
- ScalarType.cs
- _LocalDataStoreMgr.cs
- Pens.cs
- SettingsProperty.cs
- LicenseManager.cs
- XmlReflectionImporter.cs
- StorageAssociationSetMapping.cs
- Effect.cs
- ConnectionManagementSection.cs
- DeploymentExceptionMapper.cs
- Image.cs
- MachineKeySection.cs
- WinEventWrap.cs
- OutgoingWebRequestContext.cs
- CursorInteropHelper.cs
- Scene3D.cs
- RelationshipConstraintValidator.cs
- NumberSubstitution.cs
- _ConnectionGroup.cs
- FastEncoder.cs
- DecimalAnimationBase.cs
- CompilerError.cs
- SoapCommonClasses.cs
- SamlDelegatingWriter.cs
- HandleCollector.cs
- SecurityPolicySection.cs
- StreamWriter.cs
- HttpMethodConstraint.cs
- ImageMapEventArgs.cs
- TypeInitializationException.cs
- sortedlist.cs
- Table.cs
- Binding.cs
- CompilationUtil.cs
- IsolatedStoragePermission.cs
- JournalEntryStack.cs
- CngKey.cs
- ClientConfigurationSystem.cs
- ComboBox.cs
- XmlSchemaSubstitutionGroup.cs
- Triplet.cs
- PaintValueEventArgs.cs
- CredentialManagerDialog.cs
- RuntimeCompatibilityAttribute.cs
- MsmqTransportReceiveParameters.cs
- RpcAsyncResult.cs
- ProjectedSlot.cs
- WpfWebRequestHelper.cs
- RequestNavigateEventArgs.cs
- DataGridSortCommandEventArgs.cs
- EncodingInfo.cs
- ErrorWebPart.cs
- SettingsPropertyIsReadOnlyException.cs
- DataListGeneralPage.cs
- ListBoxItemWrapperAutomationPeer.cs
- WSFederationHttpBindingElement.cs
- CodeSnippetCompileUnit.cs
- MaskInputRejectedEventArgs.cs
- Graph.cs
- OLEDB_Enum.cs
- CaretElement.cs