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
- DataKey.cs
- UIAgentInitializationException.cs
- NamedObject.cs
- TextEditorCharacters.cs
- TextTreeInsertUndoUnit.cs
- Metadata.cs
- ServiceHostingEnvironment.cs
- TemplatePartAttribute.cs
- ExtendedProtectionPolicyElement.cs
- AQNBuilder.cs
- RtfFormatStack.cs
- TextEditorTables.cs
- MimeTypeMapper.cs
- UIntPtr.cs
- InvokeDelegate.cs
- SelectionUIHandler.cs
- ListViewEditEventArgs.cs
- formatstringdialog.cs
- TreeView.cs
- UrlMapping.cs
- XslCompiledTransform.cs
- RadioButtonPopupAdapter.cs
- DesignTimeValidationFeature.cs
- SubpageParaClient.cs
- DelegateTypeInfo.cs
- PolyQuadraticBezierSegment.cs
- DispatcherProcessingDisabled.cs
- HelpProvider.cs
- Columns.cs
- WebControlsSection.cs
- UnmanagedHandle.cs
- Win32.cs
- RequestQueryParser.cs
- HttpApplication.cs
- Utils.cs
- TypeContext.cs
- MailSettingsSection.cs
- SQLCharsStorage.cs
- TextRunCache.cs
- WebPartConnection.cs
- DataGridViewTextBoxColumn.cs
- ControlParameter.cs
- ThreadExceptionDialog.cs
- MetadataSerializer.cs
- DependencyObjectProvider.cs
- JournalEntryListConverter.cs
- DataServiceClientException.cs
- OracleBoolean.cs
- QilScopedVisitor.cs
- CodeIterationStatement.cs
- ReadOnlyDataSource.cs
- VisualTarget.cs
- CachedTypeface.cs
- WebPartExportVerb.cs
- CqlLexerHelpers.cs
- JournalEntryStack.cs
- Message.cs
- XsdValidatingReader.cs
- EntityParameter.cs
- TreeView.cs
- IIS7UserPrincipal.cs
- ProfileGroupSettings.cs
- SchemaType.cs
- SettingsAttributeDictionary.cs
- PeerNearMe.cs
- DataGridViewIntLinkedList.cs
- PerformanceCounterNameAttribute.cs
- HMAC.cs
- BitmapCodecInfoInternal.cs
- HttpRequestMessageProperty.cs
- ElementNotEnabledException.cs
- DecimalConstantAttribute.cs
- DefaultPrintController.cs
- ToolStripActionList.cs
- ListViewInsertEventArgs.cs
- WebResponse.cs
- DrawingVisualDrawingContext.cs
- PermissionSetEnumerator.cs
- CheckBoxStandardAdapter.cs
- ConfigurationManagerHelper.cs
- LicenseProviderAttribute.cs
- TableLayoutColumnStyleCollection.cs
- WebDisplayNameAttribute.cs
- HostedHttpTransportManager.cs
- LiteralControl.cs
- Helper.cs
- ADRoleFactoryConfiguration.cs
- TableLayoutRowStyleCollection.cs
- ShaperBuffers.cs
- DataGridViewCellEventArgs.cs
- SequenceFullException.cs
- ClientBuildManagerCallback.cs
- DispatchChannelSink.cs
- ImageInfo.cs
- PropertyDescriptorGridEntry.cs
- HitTestParameters.cs
- TaiwanCalendar.cs
- DeclaredTypeValidatorAttribute.cs
- SubMenuStyleCollection.cs
- ObfuscationAttribute.cs