Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / XamlIntegration / NamespaceTable.cs / 1305376 / NamespaceTable.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.XamlIntegration { using System.Collections.Generic; using System.Xaml; class NamespaceTable : IXamlNamespaceResolver { ListtempNamespaceList; Stack > namespaceStack; Dictionary
namespacesCache; public NamespaceTable() { this.tempNamespaceList = new List (); this.namespaceStack = new Stack >(); } public string GetNamespace(string prefix) { NamespaceDeclaration result; if (this.namespacesCache == null) { ConstructNamespaceCache(); } if (this.namespacesCache.TryGetValue(prefix, out result)) { return result.Namespace; } else { return null; } } public void ManageNamespace(XamlReader reader) { switch (reader.NodeType) { case XamlNodeType.NamespaceDeclaration: AddNamespace(reader.Namespace); break; case XamlNodeType.StartObject: case XamlNodeType.StartMember: case XamlNodeType.GetObject: EnterScope(); break; case XamlNodeType.EndMember: case XamlNodeType.EndObject: ExitScope(); break; } } public void AddNamespace(NamespaceDeclaration xamlNamespace) { this.tempNamespaceList.Add(xamlNamespace); this.namespacesCache = null; } public void EnterScope() { if (this.tempNamespaceList != null) { this.namespaceStack.Push(this.tempNamespaceList); this.tempNamespaceList = new List
(); } } public void ExitScope() { List namespaceList = this.namespaceStack.Pop(); if (namespaceList.Count != 0) { this.namespacesCache = null; } } public IEnumerable GetNamespacePrefixes() { if (this.namespacesCache == null) { ConstructNamespaceCache(); } return this.namespacesCache.Values; } void ConstructNamespaceCache() { Dictionary localNamespaces = new Dictionary (); if (this.tempNamespaceList != null && this.tempNamespaceList.Count > 0) { foreach (NamespaceDeclaration tempNamespace in tempNamespaceList) { if (!localNamespaces.ContainsKey(tempNamespace.Prefix)) { localNamespaces.Add(tempNamespace.Prefix, tempNamespace); } } } foreach (List currentNamespaces in this.namespaceStack) { foreach (NamespaceDeclaration currentNamespace in currentNamespaces) { if (!localNamespaces.ContainsKey(currentNamespace.Prefix)) { localNamespaces.Add(currentNamespace.Prefix, currentNamespace); } } } this.namespacesCache = localNamespaces; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BindingMAnagerBase.cs
- Rules.cs
- UInt64Storage.cs
- Unit.cs
- RawTextInputReport.cs
- SqlConnectionFactory.cs
- FlowLayoutPanel.cs
- EventData.cs
- CrossContextChannel.cs
- ApplicationGesture.cs
- HtmlToClrEventProxy.cs
- SelectionRangeConverter.cs
- TransactionInformation.cs
- MonitoringDescriptionAttribute.cs
- Slider.cs
- sqlmetadatafactory.cs
- SparseMemoryStream.cs
- UpDownBase.cs
- StaticResourceExtension.cs
- DataGridViewSelectedRowCollection.cs
- ReachSerializerAsync.cs
- CodeObjectCreateExpression.cs
- Command.cs
- messageonlyhwndwrapper.cs
- DynamicValidatorEventArgs.cs
- RestClientProxyHandler.cs
- PaintValueEventArgs.cs
- FileInfo.cs
- HostingPreferredMapPath.cs
- CopyEncoder.cs
- TabItem.cs
- BuildProvider.cs
- InitializingNewItemEventArgs.cs
- XmlCodeExporter.cs
- RenderingEventArgs.cs
- CryptographicAttribute.cs
- RadialGradientBrush.cs
- SimplePropertyEntry.cs
- FileDialogCustomPlaces.cs
- ProfileModule.cs
- TrayIconDesigner.cs
- NativeMethods.cs
- Control.cs
- CustomError.cs
- ReflectionHelper.cs
- MetricEntry.cs
- BasePattern.cs
- _ChunkParse.cs
- Encoder.cs
- CodeArrayIndexerExpression.cs
- OneOfScalarConst.cs
- TypeElementCollection.cs
- CapabilitiesRule.cs
- AttributeProviderAttribute.cs
- SqlRowUpdatingEvent.cs
- ResourcePermissionBase.cs
- FileDataSourceCache.cs
- HttpCapabilitiesEvaluator.cs
- DataObjectMethodAttribute.cs
- BasicHttpMessageCredentialType.cs
- TypeInitializationException.cs
- PriorityBindingExpression.cs
- ISAPIRuntime.cs
- SignatureToken.cs
- SchemaCollectionCompiler.cs
- XPathDocument.cs
- Fonts.cs
- TypeInitializationException.cs
- BidPrivateBase.cs
- GCHandleCookieTable.cs
- CombinedGeometry.cs
- CapabilitiesAssignment.cs
- ListChangedEventArgs.cs
- XomlSerializationHelpers.cs
- DocumentReferenceCollection.cs
- ReferentialConstraint.cs
- ZipIOBlockManager.cs
- TreeViewImageIndexConverter.cs
- AttachedPropertyInfo.cs
- CustomAttributeBuilder.cs
- ViewStateModeByIdAttribute.cs
- IDReferencePropertyAttribute.cs
- TextEndOfLine.cs
- InternalBufferManager.cs
- StrokeCollectionDefaultValueFactory.cs
- WebPartsSection.cs
- TransformerTypeCollection.cs
- WindowsFont.cs
- HistoryEventArgs.cs
- ServiceMemoryGates.cs
- InkCollectionBehavior.cs
- x509utils.cs
- DataServiceConfiguration.cs
- RawStylusInput.cs
- SafeSecurityHelper.cs
- WebPartCollection.cs
- BitmapCache.cs
- TemplatedAdorner.cs
- SymmetricAlgorithm.cs
- EnumerableCollectionView.cs