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
- LinkedResource.cs
- HtmlTable.cs
- ToolstripProfessionalRenderer.cs
- SafeArrayRankMismatchException.cs
- IItemProperties.cs
- CryptoApi.cs
- HatchBrush.cs
- IHttpResponseInternal.cs
- SmiEventSink.cs
- GiveFeedbackEventArgs.cs
- SecurityRuntime.cs
- CorrelationValidator.cs
- NoneExcludedImageIndexConverter.cs
- HandleCollector.cs
- ToolStripDesignerAvailabilityAttribute.cs
- Message.cs
- AtomServiceDocumentSerializer.cs
- DynamicPropertyHolder.cs
- GridViewColumn.cs
- MemberAssignmentAnalysis.cs
- ExpressionEditor.cs
- ListManagerBindingsCollection.cs
- TdsParserHelperClasses.cs
- HttpResponse.cs
- XPathDocumentBuilder.cs
- GrammarBuilderRuleRef.cs
- GeneralTransform3DGroup.cs
- X509Chain.cs
- TableLayoutRowStyleCollection.cs
- CodeChecksumPragma.cs
- UIElement.cs
- ValidateNames.cs
- ObjectListField.cs
- WebPartEventArgs.cs
- ControlsConfig.cs
- BrushConverter.cs
- PolicyLevel.cs
- RepeatButtonAutomationPeer.cs
- ListenerChannelContext.cs
- OLEDB_Enum.cs
- WorkflowTimerService.cs
- QilValidationVisitor.cs
- KerberosSecurityTokenProvider.cs
- XmlSchemaCompilationSettings.cs
- FontUnit.cs
- MILUtilities.cs
- SafeThreadHandle.cs
- PolyLineSegmentFigureLogic.cs
- PixelShader.cs
- WebPartDeleteVerb.cs
- SoapTypeAttribute.cs
- JpegBitmapEncoder.cs
- EventPropertyMap.cs
- Stacktrace.cs
- ScrollBar.cs
- NamedPermissionSet.cs
- RtfControls.cs
- WebReferencesBuildProvider.cs
- ConfigurationException.cs
- _NestedMultipleAsyncResult.cs
- ThreadExceptionEvent.cs
- PointKeyFrameCollection.cs
- SHA384Cng.cs
- FacetValues.cs
- PerformanceCounterManager.cs
- LocalizeDesigner.cs
- MemberInfoSerializationHolder.cs
- DataPager.cs
- CookieProtection.cs
- StandardToolWindows.cs
- SiteIdentityPermission.cs
- recordstatefactory.cs
- PersonalizationState.cs
- HttpWebResponse.cs
- CancellationHandlerDesigner.cs
- PageFunction.cs
- WindowsUpDown.cs
- FreezableDefaultValueFactory.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- SafeFileMapViewHandle.cs
- CacheDependency.cs
- FixedPageProcessor.cs
- GcHandle.cs
- CheckBoxPopupAdapter.cs
- BaseCollection.cs
- AsymmetricCryptoHandle.cs
- DataColumnMappingCollection.cs
- ImageBrush.cs
- PointHitTestResult.cs
- AlphaSortedEnumConverter.cs
- QilReference.cs
- OneOfScalarConst.cs
- AddInPipelineAttributes.cs
- DesignBindingPicker.cs
- Panel.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- GlyphInfoList.cs
- DbTransaction.cs
- SettingsPropertyNotFoundException.cs
- MaskedTextBoxTextEditor.cs