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
- BindingNavigator.cs
- SecureConversationVersion.cs
- XmlLanguageConverter.cs
- UrlMappingsModule.cs
- CurrentChangingEventArgs.cs
- Transform.cs
- RubberbandSelector.cs
- EntityTypeEmitter.cs
- ToolStripContentPanelDesigner.cs
- TextShapeableCharacters.cs
- UrlMappingCollection.cs
- WindowsRichEdit.cs
- SamlAuthorizationDecisionClaimResource.cs
- CodeExpressionStatement.cs
- PeerContact.cs
- SqlBulkCopy.cs
- CryptoKeySecurity.cs
- WindowsListViewItem.cs
- BinHexEncoder.cs
- WebPartEditorOkVerb.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- ToolBarTray.cs
- XmlQuerySequence.cs
- BindingSource.cs
- VisualStyleRenderer.cs
- BackoffTimeoutHelper.cs
- SqlDataSourceConfigureSortForm.cs
- DataListItemCollection.cs
- UserUseLicenseDictionaryLoader.cs
- Rights.cs
- MdiWindowListStrip.cs
- Timer.cs
- WebPartHelpVerb.cs
- CodeAttributeArgument.cs
- MenuItemStyle.cs
- DataGridViewTopLeftHeaderCell.cs
- WebPartsPersonalizationAuthorization.cs
- UserPreferenceChangingEventArgs.cs
- XPathCompileException.cs
- BaseCollection.cs
- InfoCardBinaryReader.cs
- Membership.cs
- SQLDateTime.cs
- HostedBindingBehavior.cs
- SoapReflector.cs
- DefinitionUpdate.cs
- AsyncStreamReader.cs
- arabicshape.cs
- QuaternionKeyFrameCollection.cs
- ConstructorNeedsTagAttribute.cs
- InkCanvas.cs
- QueryStringParameter.cs
- RewritingSimplifier.cs
- WebSysDescriptionAttribute.cs
- ContextMenu.cs
- KeyConstraint.cs
- HttpsHostedTransportConfiguration.cs
- DirectoryInfo.cs
- MemberInfoSerializationHolder.cs
- unsafeIndexingFilterStream.cs
- EntryIndex.cs
- BitmapSizeOptions.cs
- DataBindingCollection.cs
- AndCondition.cs
- OrderedDictionary.cs
- ArcSegment.cs
- Pen.cs
- DisposableCollectionWrapper.cs
- RemotingHelper.cs
- ClientConfigPaths.cs
- SchemaComplexType.cs
- BooleanFunctions.cs
- HelpKeywordAttribute.cs
- CounterSetInstanceCounterDataSet.cs
- TemplateBuilder.cs
- _ListenerAsyncResult.cs
- ByteAnimationUsingKeyFrames.cs
- ExternalException.cs
- XPathDocumentBuilder.cs
- ServiceConfigurationTraceRecord.cs
- DocumentSequence.cs
- EntityDataSourceEntityTypeFilterItem.cs
- StackBuilderSink.cs
- StylusPointCollection.cs
- FunctionQuery.cs
- LocatorGroup.cs
- ObjectTypeMapping.cs
- UInt16Storage.cs
- DataGridViewTextBoxCell.cs
- Label.cs
- BamlBinaryReader.cs
- ViewCellSlot.cs
- Connection.cs
- SessionEndedEventArgs.cs
- ToolStripScrollButton.cs
- SqlCacheDependencyDatabase.cs
- WebPartVerbsEventArgs.cs
- ScriptResourceInfo.cs
- AspCompat.cs
- StrongNameMembershipCondition.cs