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
- CheckedListBox.cs
- ImageCodecInfoPrivate.cs
- XsltLoader.cs
- UnsignedPublishLicense.cs
- Win32Exception.cs
- RTLAwareMessageBox.cs
- SequentialWorkflowRootDesigner.cs
- AudioException.cs
- SplitterEvent.cs
- EventBuilder.cs
- WSFederationHttpSecurity.cs
- _CommandStream.cs
- SafeNativeMemoryHandle.cs
- SystemIPGlobalStatistics.cs
- PointAnimationUsingKeyFrames.cs
- ErrorWrapper.cs
- Run.cs
- Lease.cs
- SchemaMerger.cs
- BinaryConverter.cs
- ExpressionWriter.cs
- StringDictionary.cs
- Directory.cs
- DefaultTraceListener.cs
- HttpRuntimeSection.cs
- PublisherMembershipCondition.cs
- DictionaryEntry.cs
- FileEnumerator.cs
- ContextBase.cs
- DispatcherHooks.cs
- ControlBuilderAttribute.cs
- WebZone.cs
- CodeTypeMemberCollection.cs
- ArgumentOutOfRangeException.cs
- ManualResetEvent.cs
- AdapterUtil.cs
- CatalogPart.cs
- X500Name.cs
- ProcessHost.cs
- ArrayHelper.cs
- RegexRunnerFactory.cs
- FixedTextBuilder.cs
- LoadRetryAsyncResult.cs
- ColumnMap.cs
- FilterEventArgs.cs
- BooleanFacetDescriptionElement.cs
- OpCopier.cs
- DataGridViewUtilities.cs
- TextElementCollectionHelper.cs
- FrugalList.cs
- RevocationPoint.cs
- FacetChecker.cs
- MSHTMLHost.cs
- BinaryObjectReader.cs
- KeyValueConfigurationElement.cs
- BitmapEffectDrawing.cs
- SqlRecordBuffer.cs
- VirtualPathData.cs
- SolidColorBrush.cs
- MetadataUtil.cs
- DataGridViewTopRowAccessibleObject.cs
- CompositeActivityTypeDescriptorProvider.cs
- SpellerStatusTable.cs
- Model3DCollection.cs
- ImageConverter.cs
- SafeLibraryHandle.cs
- CuspData.cs
- SqlServer2KCompatibilityCheck.cs
- UserPrincipalNameElement.cs
- FilterQueryOptionExpression.cs
- RSAPKCS1SignatureFormatter.cs
- sqlnorm.cs
- ListSortDescription.cs
- EntityWrapperFactory.cs
- ConfigXmlWhitespace.cs
- AlternateViewCollection.cs
- AccessViolationException.cs
- UserControl.cs
- XmlSchemaSet.cs
- DodSequenceMerge.cs
- FixedBufferAttribute.cs
- DynamicUpdateCommand.cs
- BaseParser.cs
- Keyboard.cs
- DES.cs
- EventLogConfiguration.cs
- TextPenaltyModule.cs
- TypeDescriptionProvider.cs
- HighContrastHelper.cs
- SqlUtil.cs
- SystemResources.cs
- AnnotationResourceCollection.cs
- TimeSpanFormat.cs
- CoreSwitches.cs
- DesignTimeVisibleAttribute.cs
- precedingsibling.cs
- VirtualPathUtility.cs
- DiscoveryServerProtocol.cs
- AnonymousIdentificationSection.cs
- ToolStripRenderer.cs