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
- NativeMethods.cs
- DBDataPermissionAttribute.cs
- OpacityConverter.cs
- CodeTypeOfExpression.cs
- WSSecurityTokenSerializer.cs
- PagerSettings.cs
- ListViewItemSelectionChangedEvent.cs
- _UriSyntax.cs
- TextElementEditingBehaviorAttribute.cs
- Scheduler.cs
- TrustExchangeException.cs
- MatrixCamera.cs
- LazyTextWriterCreator.cs
- BezierSegment.cs
- UdpChannelListener.cs
- ControlParser.cs
- SelectionEditingBehavior.cs
- SqlConnectionManager.cs
- Vector.cs
- Mutex.cs
- XmlParserContext.cs
- ExecutionScope.cs
- WindowsSpinner.cs
- ApplicationFileParser.cs
- RbTree.cs
- AssociationSetEnd.cs
- TypeUtil.cs
- TextParagraphProperties.cs
- AsyncSerializedWorker.cs
- EnumValAlphaComparer.cs
- Memoizer.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- ScriptingSectionGroup.cs
- GridViewCellAutomationPeer.cs
- ParameterCollection.cs
- TypeResolver.cs
- GetWorkflowTree.cs
- HealthMonitoringSectionHelper.cs
- UserControlBuildProvider.cs
- ButtonBaseAdapter.cs
- CodePageUtils.cs
- AnnouncementInnerClientCD1.cs
- XmlUnspecifiedAttribute.cs
- ImpersonationContext.cs
- XmlSchemaAttributeGroup.cs
- X509CertificateEndpointIdentity.cs
- LogicalExpr.cs
- EntityKey.cs
- PaintEvent.cs
- figurelengthconverter.cs
- SqlDataSourceCommandEventArgs.cs
- DbCommandDefinition.cs
- DataGridCheckBoxColumn.cs
- SoapParser.cs
- SHA256.cs
- InstanceContextManager.cs
- ObjectParameter.cs
- ResXBuildProvider.cs
- XmlSchemaSet.cs
- ISSmlParser.cs
- MobileTemplatedControlDesigner.cs
- Int32RectValueSerializer.cs
- ConsumerConnectionPoint.cs
- CapabilitiesState.cs
- GradientBrush.cs
- KerberosTicketHashIdentifierClause.cs
- SafeReversePInvokeHandle.cs
- XPathSelfQuery.cs
- PersonalizationAdministration.cs
- keycontainerpermission.cs
- PaintValueEventArgs.cs
- PrtTicket_Base.cs
- DecimalAnimationUsingKeyFrames.cs
- XmlnsCache.cs
- SkinBuilder.cs
- UnmanagedHandle.cs
- DoubleLinkList.cs
- Activator.cs
- XmlException.cs
- FileStream.cs
- SQLResource.cs
- WindowsListViewGroupHelper.cs
- StateMachineSubscriptionManager.cs
- ThrowHelper.cs
- CommentEmitter.cs
- SocketStream.cs
- Roles.cs
- DataGridItem.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- NodeLabelEditEvent.cs
- StringWriter.cs
- JsonFormatReaderGenerator.cs
- FlowDocumentReader.cs
- HtmlPanelAdapter.cs
- OptimizedTemplateContent.cs
- TextDecorationCollection.cs
- CqlErrorHelper.cs
- XmlValueConverter.cs
- WorkerRequest.cs
- Triangle.cs