Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / Globalization / BamlResourceSerializer.cs / 1 / BamlResourceSerializer.cs
//-------------------------------------------------------- // Class that implements BamlResourceSerializer // // Created: [....] @ 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
- CommandEventArgs.cs
- SystemKeyConverter.cs
- ArrangedElementCollection.cs
- TypeConverterHelper.cs
- DBConnection.cs
- ThreadStateException.cs
- XmlNodeComparer.cs
- MailAddressCollection.cs
- CollectionBuilder.cs
- KeySplineConverter.cs
- InternalDuplexChannelListener.cs
- PartBasedPackageProperties.cs
- NetDataContractSerializer.cs
- DefaultValueTypeConverter.cs
- panel.cs
- RuleSettings.cs
- cache.cs
- HttpListenerElement.cs
- AsyncDataRequest.cs
- TextInfo.cs
- UnitySerializationHolder.cs
- DataSourceHelper.cs
- ApplicationDirectoryMembershipCondition.cs
- ToolboxItemCollection.cs
- ElementUtil.cs
- FigureParaClient.cs
- HelpPage.cs
- ProcessThreadCollection.cs
- MetadataCache.cs
- MobileUserControl.cs
- FileBasedResourceGroveler.cs
- ClusterRegistryConfigurationProvider.cs
- RequestBringIntoViewEventArgs.cs
- RegexParser.cs
- ToolStripRenderEventArgs.cs
- LayoutEvent.cs
- FromRequest.cs
- StateManagedCollection.cs
- StretchValidation.cs
- ConstNode.cs
- _HeaderInfoTable.cs
- EmbeddedMailObject.cs
- DataGridColumn.cs
- StatusBar.cs
- TrackingCondition.cs
- WindowsButton.cs
- QueryIntervalOp.cs
- Pen.cs
- DynamicRenderer.cs
- RouteData.cs
- DataGridViewCellCollection.cs
- _WebProxyDataBuilder.cs
- XmlName.cs
- _NetworkingPerfCounters.cs
- TimelineClockCollection.cs
- DataGridViewDataErrorEventArgs.cs
- TextEditorParagraphs.cs
- XamlBrushSerializer.cs
- XmlAggregates.cs
- InstanceHandleReference.cs
- BamlLocalizabilityResolver.cs
- Comparer.cs
- DoubleCollectionValueSerializer.cs
- COSERVERINFO.cs
- CultureSpecificStringDictionary.cs
- ResXResourceSet.cs
- listviewsubitemcollectioneditor.cs
- FileDataSourceCache.cs
- GridItemCollection.cs
- PartBasedPackageProperties.cs
- FamilyCollection.cs
- D3DImage.cs
- Size3DConverter.cs
- SqlMethodAttribute.cs
- CapabilitiesRule.cs
- ExtendedPropertyDescriptor.cs
- GC.cs
- GridViewUpdateEventArgs.cs
- WizardSideBarListControlItem.cs
- DrawingContextDrawingContextWalker.cs
- AttachInfo.cs
- ConfigXmlSignificantWhitespace.cs
- DelegatingConfigHost.cs
- BaseCAMarshaler.cs
- TextElementEnumerator.cs
- EncryptedXml.cs
- GraphicsContainer.cs
- UpdateDelegates.Generated.cs
- StorageInfo.cs
- PropertyConverter.cs
- Utility.cs
- ContainerVisual.cs
- PathBox.cs
- BaseHashHelper.cs
- PackageRelationship.cs
- StringTraceRecord.cs
- FormViewDeletedEventArgs.cs
- CheckPair.cs
- CompilerErrorCollection.cs
- DataViewManagerListItemTypeDescriptor.cs