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
- CodePageEncoding.cs
- FindResponse.cs
- ErrorRuntimeConfig.cs
- NotifyInputEventArgs.cs
- ComboBox.cs
- PanelStyle.cs
- ParseHttpDate.cs
- XmlSchemas.cs
- EllipseGeometry.cs
- Win32PrintDialog.cs
- ColumnBinding.cs
- NullableFloatSumAggregationOperator.cs
- DataGridViewComboBoxEditingControl.cs
- DataStreamFromComStream.cs
- InstanceNotReadyException.cs
- QuadraticEase.cs
- DataGridAddNewRow.cs
- Win32SafeHandles.cs
- ConfigPathUtility.cs
- ExtentKey.cs
- NativeMethods.cs
- AnimationClockResource.cs
- TypeUnloadedException.cs
- _Events.cs
- XmlLanguage.cs
- ConfigXmlDocument.cs
- InvokerUtil.cs
- FormsAuthenticationEventArgs.cs
- PeerNode.cs
- RootProjectionNode.cs
- FontNamesConverter.cs
- WebPartsSection.cs
- TemplateBindingExpressionConverter.cs
- MetadataArtifactLoaderCompositeResource.cs
- TransformerConfigurationWizardBase.cs
- MouseWheelEventArgs.cs
- ConnectionProviderAttribute.cs
- ObjectDataSource.cs
- LinearKeyFrames.cs
- PeekCompletedEventArgs.cs
- EncoderBestFitFallback.cs
- _ProxyRegBlob.cs
- Pipe.cs
- AuthorizationSection.cs
- SecureStringHasher.cs
- SiteMapDesignerDataSourceView.cs
- BindingCollectionElement.cs
- ListDictionaryInternal.cs
- SerializationTrace.cs
- EdmComplexPropertyAttribute.cs
- StringPropertyBuilder.cs
- AxisAngleRotation3D.cs
- QueryAccessibilityHelpEvent.cs
- WebServiceMethodData.cs
- xmlfixedPageInfo.cs
- DesignerVerb.cs
- WebConfigurationHost.cs
- KerberosTicketHashIdentifierClause.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- FieldMetadata.cs
- NativeMethods.cs
- Ipv6Element.cs
- GenericUI.cs
- FrameworkContentElement.cs
- FieldAccessException.cs
- Point3DIndependentAnimationStorage.cs
- DbTransaction.cs
- SettingsPropertyWrongTypeException.cs
- TrustManager.cs
- EditorZone.cs
- Events.cs
- RemoteWebConfigurationHostStream.cs
- TemplateBindingExpressionConverter.cs
- DateRangeEvent.cs
- ProcessModuleDesigner.cs
- ScriptingAuthenticationServiceSection.cs
- SqlDataSourceSelectingEventArgs.cs
- DefaultEventAttribute.cs
- BamlRecordWriter.cs
- Attribute.cs
- DesignerOptionService.cs
- PackageProperties.cs
- ReflectionServiceProvider.cs
- ObfuscationAttribute.cs
- TranslateTransform3D.cs
- SqlUtils.cs
- SqlMethodCallConverter.cs
- PrimarySelectionAdorner.cs
- CounterSampleCalculator.cs
- IfJoinedCondition.cs
- ScriptingSectionGroup.cs
- DataListItem.cs
- __FastResourceComparer.cs
- DocumentStatusResources.cs
- ParameterToken.cs
- ExtenderControl.cs
- QilGeneratorEnv.cs
- SourceFilter.cs
- MailHeaderInfo.cs
- BitmapEffectvisualstate.cs