Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / IdentityModelDictionary.cs / 1 / IdentityModelDictionary.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel { using System.Xml; using System.Collections.Generic; class IdentityModelDictionary : IXmlDictionary { static public readonly IdentityModelDictionary Version1 = new IdentityModelDictionary(new IdentityModelStringsVersion1()); IdentityModelStrings strings; int count; XmlDictionaryString[] dictionaryStrings; Dictionarydictionary; XmlDictionaryString[] versionedDictionaryStrings; public IdentityModelDictionary(IdentityModelStrings strings) { this.strings = strings; this.count = strings.Count; } static public IdentityModelDictionary CurrentVersion { get { return Version1; } } public XmlDictionaryString CreateString(string value, int key) { return new XmlDictionaryString(this, value, key); } public bool TryLookup(string key, out XmlDictionaryString value) { if (key == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("key")); if (this.dictionary == null) { Dictionary dictionary = new Dictionary (count); for (int i = 0; i < count; i++) dictionary.Add(strings[i], i); this.dictionary = dictionary; } int id; if (this.dictionary.TryGetValue(key, out id)) return TryLookup(id, out value); value = null; return false; } public bool TryLookup(int key, out XmlDictionaryString value) { if (key < 0 || key >= count) { value = null; return false; } if (dictionaryStrings == null) dictionaryStrings = new XmlDictionaryString[count]; XmlDictionaryString s = dictionaryStrings[key]; if (s == null) { s = CreateString(strings[key], key); dictionaryStrings[key]= s; } value = s; return true; } public bool TryLookup(XmlDictionaryString key, out XmlDictionaryString value) { if (key == null) throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ArgumentNullException("key")); if (key.Dictionary == this) { value = key; return true; } if (key.Dictionary == CurrentVersion) { if (versionedDictionaryStrings == null) versionedDictionaryStrings = new XmlDictionaryString[CurrentVersion.count]; XmlDictionaryString s = versionedDictionaryStrings[key.Key]; if (s == null) { if (!TryLookup(key.Value, out s)) { value = null; return false; } versionedDictionaryStrings[key.Key] = s; } value = s; return true; } value = null; return false; } } } // 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
- XmlStringTable.cs
- QfeChecker.cs
- ToolStripScrollButton.cs
- ServiceConfigurationTraceRecord.cs
- HttpDictionary.cs
- FrameworkReadOnlyPropertyMetadata.cs
- VectorAnimationUsingKeyFrames.cs
- TextOutput.cs
- LayoutEditorPart.cs
- ScriptResourceInfo.cs
- SiteMapPathDesigner.cs
- OleDbFactory.cs
- ReferenceEqualityComparer.cs
- ToolBarDesigner.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- WebPartHelpVerb.cs
- DoubleCollection.cs
- ContextMenuService.cs
- ProxyHelper.cs
- XsltArgumentList.cs
- Assembly.cs
- Dynamic.cs
- Stack.cs
- WmiInstallComponent.cs
- CacheSection.cs
- OracleParameter.cs
- DateTime.cs
- SendKeys.cs
- SecurityPolicySection.cs
- XmlReaderSettings.cs
- Codec.cs
- RegionInfo.cs
- ErrorHandler.cs
- GifBitmapEncoder.cs
- ThreadSafeMessageFilterTable.cs
- BmpBitmapEncoder.cs
- CollaborationHelperFunctions.cs
- EventWaitHandle.cs
- WebPartActionVerb.cs
- AddressingVersion.cs
- RuntimeConfig.cs
- SchemaDeclBase.cs
- WorkflowServiceInstance.cs
- ExtendedProtectionPolicyElement.cs
- TabControlCancelEvent.cs
- TimeSpanValidator.cs
- NavigationEventArgs.cs
- XmlReflectionImporter.cs
- TypefaceMap.cs
- XmlTextWriter.cs
- GcSettings.cs
- _LocalDataStore.cs
- EntityDataSourceDesignerHelper.cs
- DBBindings.cs
- SizeF.cs
- NavigationProgressEventArgs.cs
- WebMessageEncodingElement.cs
- EventHandlerList.cs
- Relationship.cs
- CookielessHelper.cs
- ObjectDataSourceView.cs
- ServiceRouteHandler.cs
- DataGridViewCell.cs
- TcpStreams.cs
- InstancePersistenceContext.cs
- Hex.cs
- Transform.cs
- ExpressionBuilderContext.cs
- EUCJPEncoding.cs
- SafeTimerHandle.cs
- SimpleWorkerRequest.cs
- AstNode.cs
- TemplateParser.cs
- ToolStripManager.cs
- CallbackHandler.cs
- TemplateColumn.cs
- SystemIPGlobalProperties.cs
- PageRanges.cs
- BezierSegment.cs
- Font.cs
- Faults.cs
- TraceHandlerErrorFormatter.cs
- CodeDomSerializerBase.cs
- SqlProviderManifest.cs
- Calendar.cs
- ArraySet.cs
- PackageDocument.cs
- SqlXml.cs
- PageRequestManager.cs
- SourceFileBuildProvider.cs
- HotSpotCollection.cs
- AQNBuilder.cs
- ICspAsymmetricAlgorithm.cs
- DropShadowBitmapEffect.cs
- WebServiceEnumData.cs
- CodeDomExtensionMethods.cs
- SelectionChangedEventArgs.cs
- ResourcesBuildProvider.cs
- IntegerValidator.cs
- XmlAnyElementAttributes.cs