Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / Globalization / BamlResourceSerializer.cs / 1305600 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SamlAction.cs
- InheritedPropertyChangedEventArgs.cs
- DefaultMergeHelper.cs
- UserInitiatedRoutedEventPermissionAttribute.cs
- SymmetricKeyWrap.cs
- Util.cs
- EmbeddedMailObjectsCollection.cs
- AliasedSlot.cs
- GroupPartitionExpr.cs
- RoutedEventConverter.cs
- FormatConvertedBitmap.cs
- AsyncCompletedEventArgs.cs
- AppSettingsExpressionEditor.cs
- ContractsBCL.cs
- GenericTypeParameterBuilder.cs
- PackageRelationshipSelector.cs
- ThemeDirectoryCompiler.cs
- AggregateNode.cs
- Rule.cs
- DataGridViewToolTip.cs
- InputLangChangeRequestEvent.cs
- OLEDB_Enum.cs
- EntityDataSourceMemberPath.cs
- TypeForwardedToAttribute.cs
- _ListenerAsyncResult.cs
- DesignerLabelAdapter.cs
- WebPartExportVerb.cs
- QueryUtil.cs
- COM2ComponentEditor.cs
- StrongNameUtility.cs
- StylusCaptureWithinProperty.cs
- ErrorFormatter.cs
- RemotingSurrogateSelector.cs
- InheritanceUI.cs
- PeerEndPoint.cs
- CodeExpressionStatement.cs
- GlobalId.cs
- AutomationProperty.cs
- LocationUpdates.cs
- QuaternionAnimationBase.cs
- GeneratedContractType.cs
- CharacterString.cs
- RewritingSimplifier.cs
- SparseMemoryStream.cs
- MutableAssemblyCacheEntry.cs
- VectorAnimationBase.cs
- EmptyTextWriter.cs
- WebBrowsableAttribute.cs
- TraceContextRecord.cs
- SelectionGlyphBase.cs
- EllipticalNodeOperations.cs
- XmlTypeAttribute.cs
- EventProxy.cs
- WindowsProgressbar.cs
- WindowsFormsSectionHandler.cs
- PropertyEmitter.cs
- Native.cs
- Pkcs7Signer.cs
- JumpList.cs
- SQLMoney.cs
- MemberDomainMap.cs
- SemaphoreFullException.cs
- TextRunProperties.cs
- TokenBasedSet.cs
- DynamicQueryableWrapper.cs
- QueryStatement.cs
- XsdDuration.cs
- Vector3dCollection.cs
- OrthographicCamera.cs
- Vector3D.cs
- TableSectionStyle.cs
- HttpFileCollectionBase.cs
- BaseDataBoundControl.cs
- XmlSerializerNamespaces.cs
- NullableIntAverageAggregationOperator.cs
- KeyValueSerializer.cs
- ElementInit.cs
- UnionCodeGroup.cs
- BaseCAMarshaler.cs
- MailAddress.cs
- ExtensibleSyndicationObject.cs
- InkSerializer.cs
- Opcode.cs
- ClientRoleProvider.cs
- HierarchicalDataTemplate.cs
- IDataContractSurrogate.cs
- NoResizeHandleGlyph.cs
- GeneralTransform3DTo2D.cs
- LiteralText.cs
- basemetadatamappingvisitor.cs
- TextOutput.cs
- StringSorter.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- Model3DGroup.cs
- TdsValueSetter.cs
- CompoundFileStorageReference.cs
- TaskScheduler.cs
- ObfuscationAttribute.cs
- Operators.cs
- IndexedDataBuffer.cs