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
- RowCache.cs
- DateTimeConverter.cs
- SQLMembershipProvider.cs
- DataGridViewDataConnection.cs
- RemoteWebConfigurationHostStream.cs
- entityreference_tresulttype.cs
- DaylightTime.cs
- AddDataControlFieldDialog.cs
- HandlerFactoryCache.cs
- UnsafeNativeMethods.cs
- PenThreadPool.cs
- LinqDataSource.cs
- SessionStateUtil.cs
- SatelliteContractVersionAttribute.cs
- MappingException.cs
- SelectedCellsCollection.cs
- PenThread.cs
- CheckBoxField.cs
- DataGridCell.cs
- KeyboardDevice.cs
- ObjectNavigationPropertyMapping.cs
- COM2TypeInfoProcessor.cs
- AsymmetricAlgorithm.cs
- OleAutBinder.cs
- ReferenceEqualityComparer.cs
- TypeConverterAttribute.cs
- SectionInput.cs
- StickyNoteContentControl.cs
- XPathNavigatorKeyComparer.cs
- DataError.cs
- PropertyGridCommands.cs
- __Filters.cs
- Mapping.cs
- XmlDocumentSurrogate.cs
- ObjectParameter.cs
- AddInToken.cs
- ExpandSegmentCollection.cs
- DisplayInformation.cs
- JsonReaderWriterFactory.cs
- LostFocusEventManager.cs
- Variant.cs
- ViewStateException.cs
- UpdatePanelTriggerCollection.cs
- EmbeddedObject.cs
- WindowsListViewItemCheckBox.cs
- VectorCollectionValueSerializer.cs
- Thread.cs
- documentsequencetextview.cs
- CodeParameterDeclarationExpression.cs
- SqlDataSourceSelectingEventArgs.cs
- StorageInfo.cs
- SetterBase.cs
- BindingMemberInfo.cs
- ComponentDispatcherThread.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- SystemUnicastIPAddressInformation.cs
- HttpModuleCollection.cs
- PageThemeCodeDomTreeGenerator.cs
- AdPostCacheSubstitution.cs
- HttpRequestCacheValidator.cs
- WpfKnownMemberInvoker.cs
- RuntimeEnvironment.cs
- ZipPackagePart.cs
- SelectionItemProviderWrapper.cs
- TailCallAnalyzer.cs
- RegexRunnerFactory.cs
- ConnectionPool.cs
- ConnectivityStatus.cs
- ListViewDeletedEventArgs.cs
- ScalarType.cs
- XmlComplianceUtil.cs
- DispatcherExceptionFilterEventArgs.cs
- OleDbException.cs
- TextBox.cs
- ContainerCodeDomSerializer.cs
- XXXInfos.cs
- HtmlLinkAdapter.cs
- CfgParser.cs
- PropertyChangedEventManager.cs
- ObjectListItem.cs
- GroupBoxRenderer.cs
- FormViewPagerRow.cs
- Stylus.cs
- ArraySegment.cs
- ToolBarTray.cs
- WindowInteractionStateTracker.cs
- XmlStringTable.cs
- Drawing.cs
- BooleanStorage.cs
- cache.cs
- AutoSizeToolBoxItem.cs
- XmlnsDictionary.cs
- PageStatePersister.cs
- List.cs
- PeerApplication.cs
- DrawListViewItemEventArgs.cs
- Assert.cs
- ConfigXmlComment.cs
- UserControl.cs
- TimeoutValidationAttribute.cs