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
- Encoding.cs
- DataContext.cs
- RequestContext.cs
- FontDifferentiator.cs
- ImageListStreamer.cs
- RSAPKCS1SignatureFormatter.cs
- EmbeddedMailObjectsCollection.cs
- HtmlElement.cs
- ClusterRegistryConfigurationProvider.cs
- _Connection.cs
- AffineTransform3D.cs
- MsmqInputChannel.cs
- MouseGestureConverter.cs
- ConfigurationPropertyCollection.cs
- DocumentXPathNavigator.cs
- Themes.cs
- ExpressionVisitor.cs
- SafeProcessHandle.cs
- MembershipPasswordException.cs
- RenameRuleObjectDialog.Designer.cs
- TextEmbeddedObject.cs
- WebScriptEnablingBehavior.cs
- ControlPropertyNameConverter.cs
- TextLineResult.cs
- WebConfigurationFileMap.cs
- ImageBrush.cs
- ResourceReferenceExpression.cs
- TcpClientSocketManager.cs
- FixedHyperLink.cs
- ParallelLoopState.cs
- SrgsRulesCollection.cs
- OptimizedTemplateContent.cs
- LowerCaseStringConverter.cs
- ArraySortHelper.cs
- CustomErrorsSectionWrapper.cs
- MulticastOption.cs
- PartitionedStream.cs
- ScriptingJsonSerializationSection.cs
- WindowsTab.cs
- WorkflowWebService.cs
- CompositeActivityMarkupSerializer.cs
- ValidatorUtils.cs
- TextTreeTextBlock.cs
- NetTcpBindingElement.cs
- ComplexLine.cs
- FileSystemEnumerable.cs
- ExceptionUtil.cs
- DetailsViewActionList.cs
- ResourceAssociationSetEnd.cs
- TimeSpanSecondsConverter.cs
- TransformCollection.cs
- ModelUIElement3D.cs
- Vector3DIndependentAnimationStorage.cs
- SecurityException.cs
- DataGridViewComboBoxEditingControl.cs
- IdentityReference.cs
- ConsumerConnectionPoint.cs
- TypeEnumerableViewSchema.cs
- ListControlBoundActionList.cs
- XmlWriter.cs
- CryptoStream.cs
- WebRequestModulesSection.cs
- KoreanLunisolarCalendar.cs
- DataGridViewDataConnection.cs
- TextAnchor.cs
- ThemeDirectoryCompiler.cs
- OutputCacheSettings.cs
- COM2PictureConverter.cs
- DrawListViewItemEventArgs.cs
- ContractUtils.cs
- DataBinding.cs
- BuildManagerHost.cs
- PersonalizableTypeEntry.cs
- SurrogateSelector.cs
- TableCell.cs
- MatrixAnimationBase.cs
- hresults.cs
- Cursor.cs
- ObjectStateEntry.cs
- WebPartHeaderCloseVerb.cs
- PagesSection.cs
- HashSetDebugView.cs
- _AutoWebProxyScriptEngine.cs
- GlobalItem.cs
- TdsRecordBufferSetter.cs
- CodeCommentStatement.cs
- QueryableDataSourceView.cs
- StrokeFIndices.cs
- BidOverLoads.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- TrackingMemoryStream.cs
- EventSourceCreationData.cs
- DataServiceBehavior.cs
- StringHelper.cs
- BitmapEncoder.cs
- CollectionChangedEventManager.cs
- ContextStack.cs
- MemberRelationshipService.cs
- VideoDrawing.cs
- HGlobalSafeHandle.cs