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
- StylusDevice.cs
- SecureConversationDriver.cs
- RepeaterItem.cs
- AssertSection.cs
- EmissiveMaterial.cs
- DrawingContext.cs
- ImageFormatConverter.cs
- ImageSource.cs
- ReadOnlyPermissionSet.cs
- WCFModelStrings.Designer.cs
- DataGrid.cs
- XmlSchemaCollection.cs
- ImageField.cs
- ClientRuntimeConfig.cs
- EndOfStreamException.cs
- CallbackHandler.cs
- BitHelper.cs
- CreateUserErrorEventArgs.cs
- LayoutDump.cs
- DefaultPrintController.cs
- Label.cs
- RawAppCommandInputReport.cs
- DynamicILGenerator.cs
- ClientFormsIdentity.cs
- ZoneMembershipCondition.cs
- SystemParameters.cs
- HostProtectionPermission.cs
- EventListener.cs
- EventManager.cs
- DataBinding.cs
- XPathDocumentIterator.cs
- FixedSOMImage.cs
- HandlerWithFactory.cs
- TextEmbeddedObject.cs
- PerformanceCounterPermissionAttribute.cs
- MethodCallConverter.cs
- IntSecurity.cs
- HeaderedItemsControl.cs
- PersistenceTypeAttribute.cs
- ToolBarButtonDesigner.cs
- TemplateBindingExtensionConverter.cs
- MenuItem.cs
- EntityDataSourceView.cs
- AttachmentCollection.cs
- PageThemeBuildProvider.cs
- MapPathBasedVirtualPathProvider.cs
- ExtenderHelpers.cs
- EntityType.cs
- Compilation.cs
- TagPrefixCollection.cs
- SkinIDTypeConverter.cs
- documentsequencetextcontainer.cs
- BackgroundFormatInfo.cs
- SessionStateItemCollection.cs
- BroadcastEventHelper.cs
- PermissionAttributes.cs
- ObservableDictionary.cs
- ValueUtilsSmi.cs
- SimpleBitVector32.cs
- ActivityValidator.cs
- _ListenerRequestStream.cs
- TriggerBase.cs
- XmlElement.cs
- CharacterBuffer.cs
- Vector3DCollectionConverter.cs
- ProviderManager.cs
- WriterOutput.cs
- ControlAdapter.cs
- LoadRetryStrategyFactory.cs
- Misc.cs
- AssociationSetMetadata.cs
- _CacheStreams.cs
- DotNetATv1WindowsLogEntrySerializer.cs
- DocumentCollection.cs
- BoolExpr.cs
- TextEditorDragDrop.cs
- ReliableDuplexSessionChannel.cs
- AttributeEmitter.cs
- SHA1.cs
- BooleanFacetDescriptionElement.cs
- HtmlInputPassword.cs
- MultiSelectRootGridEntry.cs
- StandardTransformFactory.cs
- UInt64.cs
- MD5Cng.cs
- ResourcesChangeInfo.cs
- AutomationPropertyInfo.cs
- mediaclock.cs
- Lease.cs
- GradientStop.cs
- PartialCachingControl.cs
- ItemType.cs
- WebPartDeleteVerb.cs
- ValidationEventArgs.cs
- WebPartDisplayModeEventArgs.cs
- InstanceDataCollectionCollection.cs
- MexTcpBindingElement.cs
- Filter.cs
- MailAddressCollection.cs
- SynchronizedReadOnlyCollection.cs