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
- XmlComplianceUtil.cs
- CompilerError.cs
- ADMembershipUser.cs
- HwndSourceKeyboardInputSite.cs
- SqlDuplicator.cs
- WebResourceAttribute.cs
- Icon.cs
- UInt32Converter.cs
- EmptyElement.cs
- OleDbWrapper.cs
- PolicyManager.cs
- MsmqBindingElementBase.cs
- Exception.cs
- SqlCachedBuffer.cs
- FontCollection.cs
- RequestResizeEvent.cs
- Int32EqualityComparer.cs
- ComboBoxAutomationPeer.cs
- DefaultAsyncDataDispatcher.cs
- NullableBoolConverter.cs
- DataServiceContext.cs
- ApplicationDirectory.cs
- altserialization.cs
- MobileControlsSection.cs
- SplashScreen.cs
- ProxyGenerator.cs
- Dictionary.cs
- IteratorFilter.cs
- ConnectionsZone.cs
- MediaPlayer.cs
- TextBoxBase.cs
- FunctionDetailsReader.cs
- Point3DAnimation.cs
- CodeDomConfigurationHandler.cs
- ProfileGroupSettings.cs
- IPPacketInformation.cs
- HttpCapabilitiesEvaluator.cs
- DataGridViewRowPostPaintEventArgs.cs
- LassoHelper.cs
- TimeSpanConverter.cs
- LinearGradientBrush.cs
- RichTextBox.cs
- ColorMatrix.cs
- HttpAsyncResult.cs
- EventWaitHandle.cs
- CssTextWriter.cs
- XmlCustomFormatter.cs
- ContractAdapter.cs
- PointUtil.cs
- PasswordTextNavigator.cs
- NativeMethods.cs
- ObjectListFieldsPage.cs
- ColumnResizeUndoUnit.cs
- PageBreakRecord.cs
- RegularExpressionValidator.cs
- QuaternionRotation3D.cs
- RegisteredArrayDeclaration.cs
- WebBrowserEvent.cs
- ConversionValidationRule.cs
- StrongName.cs
- Button.cs
- PersonalizationProvider.cs
- MailWebEventProvider.cs
- messageonlyhwndwrapper.cs
- JsonWriter.cs
- MethodBuilder.cs
- GridViewColumnHeader.cs
- HandlerBase.cs
- KeyedHashAlgorithm.cs
- XmlSchemaSequence.cs
- PassportAuthenticationModule.cs
- ISFClipboardData.cs
- Point4DConverter.cs
- SQLDouble.cs
- CodeMemberEvent.cs
- PermissionToken.cs
- GradientBrush.cs
- Rules.cs
- BindingCompleteEventArgs.cs
- FormsAuthenticationTicket.cs
- Assert.cs
- WebBrowserSiteBase.cs
- GeneralTransform.cs
- StringConverter.cs
- Effect.cs
- UserValidatedEventArgs.cs
- ManifestSignedXml.cs
- HttpRawResponse.cs
- ConfigurationLockCollection.cs
- ObjectTokenCategory.cs
- oledbmetadatacolumnnames.cs
- recordstatescratchpad.cs
- DesignerDataSourceView.cs
- formatstringdialog.cs
- DbParameterHelper.cs
- WindowsBrush.cs
- IdentityValidationException.cs
- DataListItem.cs
- ConfigurationPropertyCollection.cs
- NeutralResourcesLanguageAttribute.cs