Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / IdentityModelDictionary.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XamlRtfConverter.cs
- CaretElement.cs
- DesignColumn.cs
- VirtualPathProvider.cs
- ConfigurationStrings.cs
- GridView.cs
- ISessionStateStore.cs
- PerspectiveCamera.cs
- XPathException.cs
- PhysicalFontFamily.cs
- RoleManagerSection.cs
- OracleRowUpdatingEventArgs.cs
- AggregateNode.cs
- DurableInstanceProvider.cs
- SortFieldComparer.cs
- SimpleWorkerRequest.cs
- ResolveMatchesCD1.cs
- ProcessRequestArgs.cs
- EntityDataSourceColumn.cs
- Brush.cs
- ModifiableIteratorCollection.cs
- TemplateFactory.cs
- RectValueSerializer.cs
- DateTimeSerializationSection.cs
- ToolStripPanel.cs
- XmlIgnoreAttribute.cs
- CheckPair.cs
- ConfigurationElementProperty.cs
- XmlSchemaObject.cs
- DoubleLinkListEnumerator.cs
- InstanceKey.cs
- ProtocolsConfigurationHandler.cs
- SequentialOutput.cs
- HttpListenerPrefixCollection.cs
- SoapProtocolReflector.cs
- PersonalizationProvider.cs
- TextRangeSerialization.cs
- CopyNodeSetAction.cs
- SessionPageStatePersister.cs
- XsdBuildProvider.cs
- DebuggerService.cs
- WmpBitmapDecoder.cs
- DbDeleteCommandTree.cs
- CompressionTracing.cs
- EdmItemCollection.OcAssemblyCache.cs
- ReverseComparer.cs
- ExceptionUtility.cs
- ToolStripItem.cs
- ProtocolsSection.cs
- SerialReceived.cs
- XmlSchemaValidationException.cs
- SHA256Cng.cs
- ArcSegment.cs
- RecordsAffectedEventArgs.cs
- StorageInfo.cs
- Delegate.cs
- CapabilitiesSection.cs
- ConnectorDragDropGlyph.cs
- QueryInterceptorAttribute.cs
- IndexedString.cs
- WebRequestModulesSection.cs
- RichTextBoxConstants.cs
- HtmlSelect.cs
- WebReferencesBuildProvider.cs
- DataGridViewSelectedCellCollection.cs
- JsonClassDataContract.cs
- CssClassPropertyAttribute.cs
- FilteredDataSetHelper.cs
- RowBinding.cs
- log.cs
- XsltLoader.cs
- XmlSerializerSection.cs
- ArraySortHelper.cs
- MouseButton.cs
- OutputScope.cs
- VerificationAttribute.cs
- ObjectStateFormatter.cs
- WebConfigurationHost.cs
- relpropertyhelper.cs
- SqlRowUpdatedEvent.cs
- EntityDataSourceWrapper.cs
- AppDomainInstanceProvider.cs
- Property.cs
- TransactionTraceIdentifier.cs
- ScrollBarRenderer.cs
- DataColumn.cs
- Size3DConverter.cs
- XmlNodeList.cs
- Compilation.cs
- URLIdentityPermission.cs
- HttpsChannelListener.cs
- TextFragmentEngine.cs
- DataGridViewElement.cs
- ReferencedAssemblyResolver.cs
- ConstructorExpr.cs
- GeometryHitTestResult.cs
- SecureConversationDriver.cs
- ConvertersCollection.cs
- ListItemCollection.cs
- SimpleType.cs