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
- SplayTreeNode.cs
- RecordManager.cs
- ComponentChangingEvent.cs
- _OverlappedAsyncResult.cs
- StrongName.cs
- QualificationDataAttribute.cs
- EdmSchemaError.cs
- HandleTable.cs
- QilInvokeEarlyBound.cs
- RemotingException.cs
- SHA512.cs
- DBConnection.cs
- TimeSpanParse.cs
- RefreshPropertiesAttribute.cs
- X509Chain.cs
- GetWinFXPath.cs
- TryCatchDesigner.xaml.cs
- X509CertificateClaimSet.cs
- FontStretchConverter.cs
- PkcsUtils.cs
- WeakHashtable.cs
- Transactions.cs
- TypeConverter.cs
- MemberNameValidator.cs
- RecipientInfo.cs
- BaseTransportHeaders.cs
- PaintValueEventArgs.cs
- DrawingVisual.cs
- HtmlUtf8RawTextWriter.cs
- Stylus.cs
- ToolStripContentPanelRenderEventArgs.cs
- Pen.cs
- EmptyQuery.cs
- CollectionTraceRecord.cs
- TypeLibConverter.cs
- GroupItem.cs
- FlowDocumentPaginator.cs
- DateTimeOffset.cs
- SoundPlayerAction.cs
- Schema.cs
- DateTimeOffset.cs
- SmiTypedGetterSetter.cs
- ItemChangedEventArgs.cs
- PartialCachingAttribute.cs
- CodeDOMUtility.cs
- CaseStatement.cs
- BufferModesCollection.cs
- HighlightComponent.cs
- MetaModel.cs
- SubstitutionDesigner.cs
- ComEventsInfo.cs
- SessionPageStatePersister.cs
- VersionedStream.cs
- CacheMode.cs
- _HeaderInfo.cs
- StyleCollection.cs
- ExtenderProvidedPropertyAttribute.cs
- Label.cs
- X509IssuerSerialKeyIdentifierClause.cs
- HttpCacheVary.cs
- WebPartZoneBase.cs
- BaseHashHelper.cs
- CodeCommentStatementCollection.cs
- RegexEditorDialog.cs
- ResourceDescriptionAttribute.cs
- CoreChannel.cs
- ConnectionProviderAttribute.cs
- DotNetATv1WindowsLogEntrySerializer.cs
- Bookmark.cs
- BamlVersionHeader.cs
- JobCollate.cs
- MultiBinding.cs
- SoapServerMethod.cs
- ValueQuery.cs
- X509Certificate.cs
- HtmlInputPassword.cs
- QilGenerator.cs
- EntityClassGenerator.cs
- WebColorConverter.cs
- TextEndOfLine.cs
- TextAdaptor.cs
- Expressions.cs
- SqlError.cs
- BuilderPropertyEntry.cs
- FtpWebResponse.cs
- QueryReaderSettings.cs
- ComPlusSynchronizationContext.cs
- ScalarOps.cs
- GifBitmapDecoder.cs
- SiteMap.cs
- EventToken.cs
- StateDesignerConnector.cs
- HyperLinkColumn.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- TableItemPatternIdentifiers.cs
- DataGridBoolColumn.cs
- DateTimeConstantAttribute.cs
- Package.cs
- Control.cs
- WpfSharedBamlSchemaContext.cs