Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- RedistVersionInfo.cs
- Condition.cs
- SystemIcmpV4Statistics.cs
- AutomationEvent.cs
- TreeNodeCollectionEditor.cs
- TrustLevel.cs
- InternalControlCollection.cs
- COMException.cs
- ComplexPropertyEntry.cs
- QueryStatement.cs
- EdgeModeValidation.cs
- DataPagerFieldItem.cs
- SiteIdentityPermission.cs
- CheckBoxPopupAdapter.cs
- PipeStream.cs
- HttpClientCertificate.cs
- CodeTypeReferenceCollection.cs
- Paragraph.cs
- CallbackHandler.cs
- Cursor.cs
- AccessibleObject.cs
- XmlAttributeCollection.cs
- RangeValidator.cs
- PrintEvent.cs
- SchemaNotation.cs
- TempFiles.cs
- TrackingConditionCollection.cs
- CookieParameter.cs
- PenLineJoinValidation.cs
- StreamSecurityUpgradeInitiator.cs
- OrderingExpression.cs
- WebBaseEventKeyComparer.cs
- IArgumentProvider.cs
- objectquery_tresulttype.cs
- InstanceHandle.cs
- StorageFunctionMapping.cs
- ContentIterators.cs
- ApplicationSecurityInfo.cs
- WindowsSolidBrush.cs
- precedingsibling.cs
- InvokeGenerator.cs
- UIElementHelper.cs
- DbCommandDefinition.cs
- TextMarkerSource.cs
- NetNamedPipeSecurity.cs
- ViewLoader.cs
- SmiTypedGetterSetter.cs
- JsonSerializer.cs
- sortedlist.cs
- Material.cs
- EncryptedXml.cs
- PeerApplication.cs
- SqlReferenceCollection.cs
- UniqueConstraint.cs
- CodeTypeReferenceCollection.cs
- indexingfiltermarshaler.cs
- SafeNativeMethods.cs
- NodeLabelEditEvent.cs
- DataSourceView.cs
- TimeSpanOrInfiniteConverter.cs
- DllNotFoundException.cs
- MailAddressCollection.cs
- LocalValueEnumerator.cs
- TrackBarRenderer.cs
- SqlCacheDependencyDatabase.cs
- OdbcEnvironment.cs
- EncoderFallback.cs
- PerformanceCounterManager.cs
- dbdatarecord.cs
- ScrollViewerAutomationPeer.cs
- SQLDecimal.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- HtmlContainerControl.cs
- XmlLanguage.cs
- _NegoStream.cs
- WindowsImpersonationContext.cs
- QueryCursorEventArgs.cs
- Setter.cs
- ScrollChangedEventArgs.cs
- UserNamePasswordValidator.cs
- HttpProfileBase.cs
- DbSource.cs
- DragDropManager.cs
- SecurityAlgorithmSuiteConverter.cs
- XmlNavigatorStack.cs
- EffectiveValueEntry.cs
- TreeNodeCollection.cs
- ClientProtocol.cs
- HtmlMeta.cs
- control.ime.cs
- TargetInvocationException.cs
- SchemaImporter.cs
- TrackingCondition.cs
- OdbcErrorCollection.cs
- InvalidPipelineStoreException.cs
- ExtensionQuery.cs
- PageSettings.cs
- StylusPointProperty.cs
- QuaternionRotation3D.cs
- ObjectConverter.cs