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
- DataGridViewBand.cs
- UnionExpr.cs
- TextEditorCopyPaste.cs
- XmlSchemaInferenceException.cs
- ValueType.cs
- ToolStrip.cs
- DictionarySectionHandler.cs
- DataServiceHost.cs
- DataProtection.cs
- hebrewshape.cs
- BasicHttpSecurityMode.cs
- XPathScanner.cs
- DataBindingHandlerAttribute.cs
- SafeArchiveContext.cs
- ButtonBaseAutomationPeer.cs
- ObjectConverter.cs
- FragmentQuery.cs
- SiteMapNodeItem.cs
- nulltextcontainer.cs
- MasterPageCodeDomTreeGenerator.cs
- AuthorizationSection.cs
- Region.cs
- LinqToSqlWrapper.cs
- ManagedCodeMarkers.cs
- SqlDataReaderSmi.cs
- GotoExpression.cs
- ProjectionPlan.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- StylusDownEventArgs.cs
- CroppedBitmap.cs
- DBSqlParserColumnCollection.cs
- _OverlappedAsyncResult.cs
- XmlHierarchyData.cs
- ColorMap.cs
- SoundPlayer.cs
- NetworkInformationException.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- XmlSerializerAssemblyAttribute.cs
- WebContext.cs
- ResourceContainer.cs
- ContextMenuAutomationPeer.cs
- XmlRootAttribute.cs
- IDReferencePropertyAttribute.cs
- XmlSerializableReader.cs
- WorkflowHostingResponseContext.cs
- ZoneButton.cs
- ContractMapping.cs
- RewritingPass.cs
- MarkupWriter.cs
- TraceLog.cs
- XmlQueryContext.cs
- DecoderNLS.cs
- BinaryExpression.cs
- PerformanceCounterPermissionEntryCollection.cs
- DataGridRowHeader.cs
- Rect.cs
- QuotedPrintableStream.cs
- AttributeData.cs
- RectAnimationBase.cs
- UrlMappingsSection.cs
- ViewStateModeByIdAttribute.cs
- SecurityTokenResolver.cs
- RuleRef.cs
- CodeTypeMember.cs
- PrimitiveType.cs
- StyleCollectionEditor.cs
- Context.cs
- DictionaryMarkupSerializer.cs
- CompareValidator.cs
- BamlLocalizer.cs
- SupportingTokenParameters.cs
- SqlDataAdapter.cs
- TrackingStringDictionary.cs
- SerializationTrace.cs
- TextSelectionHighlightLayer.cs
- CheckBoxPopupAdapter.cs
- OneOfConst.cs
- GridViewItemAutomationPeer.cs
- UTF7Encoding.cs
- ContainerVisual.cs
- SecurityPermission.cs
- TableItemProviderWrapper.cs
- AdRotator.cs
- FormatVersion.cs
- UserNamePasswordValidator.cs
- ScriptRegistrationManager.cs
- RoleManagerEventArgs.cs
- WebControl.cs
- CompensableActivity.cs
- TextTreeInsertUndoUnit.cs
- DataKey.cs
- WeakRefEnumerator.cs
- FontEditor.cs
- ReadWriteObjectLock.cs
- RemoteWebConfigurationHostServer.cs
- FlowDocumentFormatter.cs
- UTF7Encoding.cs
- DragStartedEventArgs.cs
- Rect.cs
- HttpListenerResponse.cs