Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- HtmlHistory.cs
- DefaultValueMapping.cs
- InputLanguageCollection.cs
- LogReserveAndAppendState.cs
- RawMouseInputReport.cs
- CompoundFileIOPermission.cs
- TextTreeUndoUnit.cs
- ManualResetEventSlim.cs
- PackWebResponse.cs
- SqlConnectionPoolGroupProviderInfo.cs
- SessionStateModule.cs
- querybuilder.cs
- TemplateBindingExtension.cs
- IntegrationExceptionEventArgs.cs
- AffineTransform3D.cs
- HyperLink.cs
- HintTextMaxWidthConverter.cs
- SystemIPAddressInformation.cs
- Error.cs
- ParamArrayAttribute.cs
- ConfigXmlSignificantWhitespace.cs
- ProgressBarAutomationPeer.cs
- DelegatedStream.cs
- webeventbuffer.cs
- Canvas.cs
- CodeEventReferenceExpression.cs
- PartialList.cs
- DataGridViewRowsRemovedEventArgs.cs
- FunctionParameter.cs
- AuthenticationService.cs
- TextElementEnumerator.cs
- DataSourceSelectArguments.cs
- TypeBrowser.xaml.cs
- XmlSchemaType.cs
- PlainXmlWriter.cs
- exports.cs
- VirtualPathUtility.cs
- HierarchicalDataSourceIDConverter.cs
- GeometryDrawing.cs
- ToolStripDropDownItem.cs
- httpserverutility.cs
- InputGestureCollection.cs
- ButtonFieldBase.cs
- Matrix.cs
- OwnerDrawPropertyBag.cs
- UnsafeNativeMethods.cs
- FontUnit.cs
- NamespaceEmitter.cs
- FileLoadException.cs
- MenuItem.cs
- HtmlTextViewAdapter.cs
- WindowsToolbarItemAsMenuItem.cs
- PropertyMetadata.cs
- Events.cs
- KnownColorTable.cs
- TaskFormBase.cs
- StylusButton.cs
- MissingManifestResourceException.cs
- wgx_exports.cs
- System.Data_BID.cs
- IntPtr.cs
- UnsafeNativeMethods.cs
- ExpressionBindingCollection.cs
- XmlSecureResolver.cs
- DashStyle.cs
- ParserContext.cs
- UTF7Encoding.cs
- PostBackTrigger.cs
- WindowsListViewItemStartMenu.cs
- Variable.cs
- StartUpEventArgs.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- ValueQuery.cs
- SqlTriggerContext.cs
- GZipDecoder.cs
- GradientStop.cs
- PropertyStore.cs
- ViewCellSlot.cs
- DataGridRow.cs
- TemplateNameScope.cs
- DbProviderSpecificTypePropertyAttribute.cs
- TypeUnloadedException.cs
- XmlNavigatorStack.cs
- XPathArrayIterator.cs
- NativeMethods.cs
- SecurityTokenProvider.cs
- PriorityBinding.cs
- VideoDrawing.cs
- SafeCertificateStore.cs
- BaseValidatorDesigner.cs
- JournalEntryStack.cs
- ListenerElementsCollection.cs
- HttpCapabilitiesEvaluator.cs
- PlatformCulture.cs
- ToggleProviderWrapper.cs
- LambdaCompiler.Expressions.cs
- TargetConverter.cs
- WindowsToolbarAsMenu.cs
- LogStore.cs
- FacetDescription.cs