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
- CheckBoxBaseAdapter.cs
- SqlCacheDependencyDatabaseCollection.cs
- Bidi.cs
- MatrixConverter.cs
- SetIterators.cs
- MonthCalendarDesigner.cs
- Compiler.cs
- GcHandle.cs
- FontStyles.cs
- TrustDriver.cs
- DataViewListener.cs
- SynchronizedInputAdaptor.cs
- WorkflowFileItem.cs
- RedirectionProxy.cs
- ListViewInsertedEventArgs.cs
- WebPartRestoreVerb.cs
- ColumnCollection.cs
- ProfessionalColors.cs
- UInt32.cs
- ObjectDisposedException.cs
- DBCommand.cs
- FamilyMapCollection.cs
- CustomErrorsSection.cs
- TextCompositionManager.cs
- EditorServiceContext.cs
- DeclarativeCatalogPart.cs
- TableLayoutPanel.cs
- Int16AnimationUsingKeyFrames.cs
- OleStrCAMarshaler.cs
- StackSpiller.Temps.cs
- EnterpriseServicesHelper.cs
- CategoryAttribute.cs
- ScriptReferenceBase.cs
- SoapCodeExporter.cs
- FormatterServices.cs
- MetafileHeaderWmf.cs
- QueryOperationResponseOfT.cs
- RemotingConfigParser.cs
- ValueHandle.cs
- SerializationSectionGroup.cs
- XmlSchemaComplexContent.cs
- WsdlImporter.cs
- SchemaNames.cs
- ApplicationFileParser.cs
- SolidColorBrush.cs
- COSERVERINFO.cs
- Interfaces.cs
- SpanIndex.cs
- FunctionDescription.cs
- MSHTMLHostUtil.cs
- SelectionRangeConverter.cs
- TimelineClockCollection.cs
- DynamicArgumentDesigner.xaml.cs
- BinaryNode.cs
- sqlnorm.cs
- WebServiceTypeData.cs
- HtmlInputImage.cs
- Serializer.cs
- BitmapFrame.cs
- PathStreamGeometryContext.cs
- RNGCryptoServiceProvider.cs
- MessageQueuePermissionAttribute.cs
- HttpGetClientProtocol.cs
- PlainXmlSerializer.cs
- StylusOverProperty.cs
- ArrayWithOffset.cs
- ConnectionsZone.cs
- Point3DAnimation.cs
- ThreadAbortException.cs
- ProfilePropertySettings.cs
- XmlSignatureProperties.cs
- XPathAncestorQuery.cs
- NetworkInterface.cs
- XPathEmptyIterator.cs
- HtmlInputImage.cs
- ProviderUtil.cs
- IdentityModelStringsVersion1.cs
- KeyValueSerializer.cs
- _ContextAwareResult.cs
- _IPv4Address.cs
- SecurityPermission.cs
- BufferedStream.cs
- AuthenticationModeHelper.cs
- SharedConnectionListener.cs
- XmlSchemaAttribute.cs
- TextEditorTables.cs
- NamespaceQuery.cs
- ActiveXSite.cs
- ControlPropertyNameConverter.cs
- CompensatableTransactionScopeActivity.cs
- SiteMap.cs
- DataServiceRequestOfT.cs
- EntityDataSourceWizardForm.cs
- InkSerializer.cs
- CookieParameter.cs
- WindowsComboBox.cs
- RectAnimationClockResource.cs
- DataGridViewCellStyleConverter.cs
- OleDbDataReader.cs
- DrawTreeNodeEventArgs.cs