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
- ClassData.cs
- FlowDocumentReaderAutomationPeer.cs
- IntranetCredentialPolicy.cs
- ExecutionContext.cs
- MenuTracker.cs
- XPSSignatureDefinition.cs
- EntityContainerEmitter.cs
- SqlFactory.cs
- QuaternionKeyFrameCollection.cs
- ChildTable.cs
- ComplexBindingPropertiesAttribute.cs
- HoistedLocals.cs
- GCHandleCookieTable.cs
- ScriptReference.cs
- OfTypeExpression.cs
- SystemFonts.cs
- AnnotationHighlightLayer.cs
- ApplicationInterop.cs
- ConfigXmlCDataSection.cs
- DocComment.cs
- HostProtectionPermission.cs
- Int32Storage.cs
- DataSourceView.cs
- ImageMap.cs
- JsonByteArrayDataContract.cs
- SchemaImporterExtensionElement.cs
- PackageDigitalSignature.cs
- AsyncSerializedWorker.cs
- CannotUnloadAppDomainException.cs
- SqlCacheDependencyDatabaseCollection.cs
- ColumnCollection.cs
- CompilerWrapper.cs
- ReadOnlyHierarchicalDataSourceView.cs
- MultiView.cs
- ToolStripSystemRenderer.cs
- LogicalMethodInfo.cs
- ConfigXmlComment.cs
- Grid.cs
- SmiMetaDataProperty.cs
- ActivityStatusChangeEventArgs.cs
- SizeConverter.cs
- columnmapkeybuilder.cs
- UxThemeWrapper.cs
- CustomErrorCollection.cs
- ImageMetadata.cs
- HtmlShimManager.cs
- COM2EnumConverter.cs
- TransformValueSerializer.cs
- TaskFileService.cs
- _LazyAsyncResult.cs
- Internal.cs
- HiddenFieldPageStatePersister.cs
- SerializationHelper.cs
- Base64Stream.cs
- Grid.cs
- UpdateCompiler.cs
- Polyline.cs
- NameValueSectionHandler.cs
- WebFaultClientMessageInspector.cs
- DataObject.cs
- PostBackOptions.cs
- FilterFactory.cs
- WindowsEditBoxRange.cs
- OptimalBreakSession.cs
- FusionWrap.cs
- ShaderEffect.cs
- XmlCharacterData.cs
- Menu.cs
- JsonReaderDelegator.cs
- ActivityUtilities.cs
- CategoryGridEntry.cs
- VisualProxy.cs
- TypeSystemProvider.cs
- RepeatButtonAutomationPeer.cs
- Random.cs
- SqlDeflator.cs
- Claim.cs
- MimeFormatter.cs
- TemplateControlParser.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- ReferenceService.cs
- StylusPointPropertyId.cs
- PropertyFilter.cs
- ObfuscationAttribute.cs
- ChannelEndpointElement.cs
- Win32SafeHandles.cs
- Transform3D.cs
- FatalException.cs
- arc.cs
- DataGridViewColumnConverter.cs
- BindingBase.cs
- CellCreator.cs
- XmlDocumentSerializer.cs
- ServiceOperationParameter.cs
- Point.cs
- AutomationIdentifierGuids.cs
- ValidationRule.cs
- ColorTranslator.cs
- CharEntityEncoderFallback.cs
- DataGridViewLinkColumn.cs