Code:
/ 4.0 / 4.0 / 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. //-------------------------------------------------------- // 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
- PathHelper.cs
- TemplateColumn.cs
- LoadedEvent.cs
- Application.cs
- UIElementPropertyUndoUnit.cs
- DataGridItem.cs
- BooleanExpr.cs
- TagPrefixAttribute.cs
- PageThemeParser.cs
- ServiceDefaults.cs
- ProxyElement.cs
- DbgCompiler.cs
- ICollection.cs
- Util.cs
- UrlAuthFailedErrorFormatter.cs
- shaperfactoryquerycacheentry.cs
- _CacheStreams.cs
- HtmlWindowCollection.cs
- MessageHeaderAttribute.cs
- ContextStack.cs
- InputScopeManager.cs
- AutoGeneratedField.cs
- ControlCollection.cs
- FullTextBreakpoint.cs
- DrawingImage.cs
- Win32SafeHandles.cs
- WindowsBrush.cs
- SmiContext.cs
- OdbcCommand.cs
- NamespaceInfo.cs
- BufferedGraphics.cs
- KerberosReceiverSecurityToken.cs
- RectangleConverter.cs
- HtmlInputImage.cs
- XmlNodeWriter.cs
- SeekableReadStream.cs
- SqlDataReader.cs
- SqlDataRecord.cs
- RelationHandler.cs
- ExceptionHelpers.cs
- DesignerObjectListAdapter.cs
- ValidationErrorEventArgs.cs
- SamlAudienceRestrictionCondition.cs
- WebPartManagerInternals.cs
- TransformerTypeCollection.cs
- OperationAbortedException.cs
- MetadataSection.cs
- EventMetadata.cs
- ConfigurationManagerHelper.cs
- CacheEntry.cs
- TargetInvocationException.cs
- VirtualizedItemPattern.cs
- TreeView.cs
- CaseInsensitiveComparer.cs
- SrgsToken.cs
- ResolveNameEventArgs.cs
- RewritingSimplifier.cs
- URLString.cs
- CodeDOMUtility.cs
- ServicesUtilities.cs
- AssemblyLoader.cs
- SystemIPv4InterfaceProperties.cs
- ISFClipboardData.cs
- CacheMode.cs
- DesignerActionUIStateChangeEventArgs.cs
- UserPreferenceChangingEventArgs.cs
- XmlSchemaComplexContentRestriction.cs
- EditorZoneDesigner.cs
- PinnedBufferMemoryStream.cs
- Queue.cs
- autovalidator.cs
- EntityContainer.cs
- DirtyTextRange.cs
- PersonalizationState.cs
- LoginAutoFormat.cs
- ToolStripPanel.cs
- SessionStateSection.cs
- ObjectTag.cs
- TemplateControlBuildProvider.cs
- SecurityRuntime.cs
- RegistryConfigurationProvider.cs
- Int64.cs
- SocketException.cs
- WebPartCatalogCloseVerb.cs
- FusionWrap.cs
- DependencyObjectValidator.cs
- XmlWhitespace.cs
- HeaderUtility.cs
- URLMembershipCondition.cs
- SqlFormatter.cs
- FormView.cs
- TempEnvironment.cs
- UIHelper.cs
- DisposableCollectionWrapper.cs
- AspNetRouteServiceHttpHandler.cs
- ToolboxComponentsCreatingEventArgs.cs
- RequestSecurityTokenResponse.cs
- StateMachineWorkflowInstance.cs
- CompletedAsyncResult.cs
- SQLDouble.cs