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
- querybuilder.cs
- HistoryEventArgs.cs
- TextContainerChangeEventArgs.cs
- TreeViewBindingsEditor.cs
- NavigatorInput.cs
- SafeCertificateContext.cs
- ForceCopyBuildProvider.cs
- SystemResources.cs
- SymDocumentType.cs
- TemplateControlParser.cs
- DataSetMappper.cs
- XmlnsDictionary.cs
- EndGetFileNameFromUserRequest.cs
- GridViewRow.cs
- httpserverutility.cs
- ArraySubsetEnumerator.cs
- ListControlBuilder.cs
- ProgressBarRenderer.cs
- EDesignUtil.cs
- DiscoveryMessageSequenceCD1.cs
- ToolStripLabel.cs
- ControlAdapter.cs
- TypeToken.cs
- ObjectRef.cs
- SqlParameterCollection.cs
- GeometryGroup.cs
- StaticContext.cs
- WebPartZoneCollection.cs
- GridViewRowPresenterBase.cs
- RIPEMD160Managed.cs
- DataSourceCacheDurationConverter.cs
- CheckBoxList.cs
- ContextBase.cs
- AmbientProperties.cs
- XPathNodePointer.cs
- ListViewDesigner.cs
- ReverseInheritProperty.cs
- RequestCachePolicy.cs
- NumberFormatInfo.cs
- EmptyStringExpandableObjectConverter.cs
- SortExpressionBuilder.cs
- UnsafePeerToPeerMethods.cs
- IssuedTokenClientBehaviorsElementCollection.cs
- HostedHttpRequestAsyncResult.cs
- XmlWrappingReader.cs
- EditorOptionAttribute.cs
- XmlDocumentSchema.cs
- PersonalizationProviderHelper.cs
- XmlArrayAttribute.cs
- MonitorWrapper.cs
- BindingManagerDataErrorEventArgs.cs
- FormCollection.cs
- InputScopeAttribute.cs
- COM2FontConverter.cs
- ReaderWriterLock.cs
- X509CertificateInitiatorClientCredential.cs
- DataGridLinkButton.cs
- PreProcessor.cs
- MemberDescriptor.cs
- CodeSnippetStatement.cs
- DisplayInformation.cs
- StringDictionary.cs
- DomainUpDown.cs
- DashStyles.cs
- MobileTextWriter.cs
- NamespaceQuery.cs
- MetadataPropertyvalue.cs
- EditorBrowsableAttribute.cs
- tooltip.cs
- IssuanceTokenProviderBase.cs
- TextHidden.cs
- SapiInterop.cs
- Maps.cs
- SchemaAttDef.cs
- DesignerVerbCollection.cs
- DataSourceControl.cs
- sqlmetadatafactory.cs
- ListViewItemEventArgs.cs
- MexHttpBindingElement.cs
- NavigationProgressEventArgs.cs
- SerializationObjectManager.cs
- CellNormalizer.cs
- CodeNamespaceCollection.cs
- RowSpanVector.cs
- CounterSample.cs
- MonthCalendar.cs
- ValidatorUtils.cs
- ISessionStateStore.cs
- XmlDownloadManager.cs
- CatalogPart.cs
- GridViewRow.cs
- ListViewUpdateEventArgs.cs
- _SslStream.cs
- ButtonChrome.cs
- DomainUpDown.cs
- ADMembershipProvider.cs
- ProfileService.cs
- AnnotationStore.cs
- PersianCalendar.cs
- PrePrepareMethodAttribute.cs