Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------ // 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; Dictionary dictionary; 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
- XmlQualifiedNameTest.cs
- HtmlTableCell.cs
- StyleXamlTreeBuilder.cs
- WSDualHttpBindingCollectionElement.cs
- VSDExceptions.cs
- CheckBoxRenderer.cs
- ToolStripLabel.cs
- WmlPhoneCallAdapter.cs
- DataGridViewTextBoxCell.cs
- PropertyChangedEventManager.cs
- IsolatedStoragePermission.cs
- XmlSchemaChoice.cs
- OleDbInfoMessageEvent.cs
- MetricEntry.cs
- IOThreadScheduler.cs
- DbProviderFactoriesConfigurationHandler.cs
- _ScatterGatherBuffers.cs
- TextTreeFixupNode.cs
- FormsAuthenticationEventArgs.cs
- Buffer.cs
- ToolStripScrollButton.cs
- WebServiceHandler.cs
- RangeValuePattern.cs
- Function.cs
- InvalidWMPVersionException.cs
- BrowserInteropHelper.cs
- StaticResourceExtension.cs
- Simplifier.cs
- SyntaxCheck.cs
- VirtualDirectoryMappingCollection.cs
- EventLogPermissionAttribute.cs
- MonthChangedEventArgs.cs
- SerialStream.cs
- ExpressionBindingCollection.cs
- GridSplitter.cs
- StaticResourceExtension.cs
- RegexRunnerFactory.cs
- Padding.cs
- FrameworkElement.cs
- EntityDesignerUtils.cs
- MainMenu.cs
- BitmapSizeOptions.cs
- DragDrop.cs
- CompositeControl.cs
- MetadataItemSerializer.cs
- SafeHandles.cs
- ServiceModelReg.cs
- Memoizer.cs
- ResolveCompletedEventArgs.cs
- Utils.cs
- OutputCacheSettingsSection.cs
- TreeNodeStyleCollectionEditor.cs
- Figure.cs
- panel.cs
- MonthCalendar.cs
- ClientSideQueueItem.cs
- RequestCachePolicyConverter.cs
- FormViewPagerRow.cs
- MailAddressParser.cs
- SpellCheck.cs
- SafeNativeMethods.cs
- ToolStripDropDown.cs
- PropertyGeneratedEventArgs.cs
- AssemblyCollection.cs
- DateTimeOffset.cs
- ResourceDescriptionAttribute.cs
- DiagnosticSection.cs
- InputLanguageCollection.cs
- EdmTypeAttribute.cs
- DataSourceControlBuilder.cs
- SubtreeProcessor.cs
- GridViewHeaderRowPresenterAutomationPeer.cs
- AmbientValueAttribute.cs
- ComponentSerializationService.cs
- SqlDataSourceCommandEventArgs.cs
- SemanticResultKey.cs
- DelimitedListTraceListener.cs
- PropertyGeneratedEventArgs.cs
- TimelineGroup.cs
- RepeaterCommandEventArgs.cs
- Certificate.cs
- XamlToRtfWriter.cs
- NoResizeSelectionBorderGlyph.cs
- latinshape.cs
- SmtpException.cs
- PathSegment.cs
- ContainerControl.cs
- TimelineGroup.cs
- Calendar.cs
- DateTimeFormat.cs
- AuthenticationService.cs
- DataGridViewToolTip.cs
- XmlnsCache.cs
- StringFormat.cs
- CTreeGenerator.cs
- FileSystemWatcher.cs
- MimeWriter.cs
- SQLConvert.cs
- SBCSCodePageEncoding.cs
- ResourceReferenceKeyNotFoundException.cs