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
- StringStorage.cs
- BufferCache.cs
- SortDescription.cs
- ValidatingPropertiesEventArgs.cs
- BuiltInPermissionSets.cs
- ReachSerializationUtils.cs
- FontStyleConverter.cs
- XmlTypeMapping.cs
- CommandBinding.cs
- SimpleWorkerRequest.cs
- JoinGraph.cs
- ToolStripDropDownMenu.cs
- ToolBarButtonClickEvent.cs
- ManagedFilter.cs
- VirtualizedItemPattern.cs
- CommandField.cs
- PartitionedStreamMerger.cs
- Zone.cs
- ProfileGroupSettingsCollection.cs
- CommandExpr.cs
- cookiecontainer.cs
- SpeechUI.cs
- CalendarAutoFormatDialog.cs
- StatusBarItemAutomationPeer.cs
- XAMLParseException.cs
- FixedSOMPageElement.cs
- HtmlMeta.cs
- WindowsTab.cs
- ButtonChrome.cs
- CookieParameter.cs
- ConstructorNeedsTagAttribute.cs
- DelegatingTypeDescriptionProvider.cs
- StaticResourceExtension.cs
- DbProviderFactories.cs
- AbsoluteQuery.cs
- ColorConvertedBitmapExtension.cs
- IndexingContentUnit.cs
- WorkflowMarkupSerializer.cs
- PenCursorManager.cs
- XmlAnyElementAttributes.cs
- MatrixValueSerializer.cs
- XmlDocumentSchema.cs
- DesignerForm.cs
- SqlNodeAnnotations.cs
- IndentTextWriter.cs
- HelloOperation11AsyncResult.cs
- ContentType.cs
- FontFamilyConverter.cs
- _NetRes.cs
- Win32KeyboardDevice.cs
- WindowsGrip.cs
- ChannelPoolSettings.cs
- ReadOnlyObservableCollection.cs
- CodeStatementCollection.cs
- SqlUDTStorage.cs
- SerializableAttribute.cs
- Object.cs
- OdbcConnectionStringbuilder.cs
- Crypto.cs
- LinqDataSourceInsertEventArgs.cs
- NavigationProperty.cs
- DefaultAssemblyResolver.cs
- OpacityConverter.cs
- XmlnsCompatibleWithAttribute.cs
- CodeComment.cs
- XmlNodeList.cs
- SiteMapNodeCollection.cs
- TrackingMemoryStreamFactory.cs
- ServiceDurableInstance.cs
- ContentWrapperAttribute.cs
- TextPatternIdentifiers.cs
- TimeSpanHelper.cs
- TransactionWaitAsyncResult.cs
- TextTreeUndoUnit.cs
- TabletDeviceInfo.cs
- documentsequencetextpointer.cs
- ThrowHelper.cs
- SqlMetaData.cs
- TableRowsCollectionEditor.cs
- TreeIterators.cs
- CodeNamespaceCollection.cs
- assemblycache.cs
- UTF7Encoding.cs
- StructuredTypeEmitter.cs
- PropertyConverter.cs
- WindowsFormsSynchronizationContext.cs
- VisualProxy.cs
- MobileFormsAuthentication.cs
- XPathChildIterator.cs
- ResizeGrip.cs
- Effect.cs
- oledbmetadatacollectionnames.cs
- TiffBitmapEncoder.cs
- RuleProcessor.cs
- CancelEventArgs.cs
- RadioButtonPopupAdapter.cs
- AuthenticationModulesSection.cs
- TemplateField.cs
- webeventbuffer.cs
- Scheduling.cs