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
- OdbcTransaction.cs
- ProcessHostFactoryHelper.cs
- fixedPageContentExtractor.cs
- CryptoStream.cs
- activationcontext.cs
- SettingsProviderCollection.cs
- SqlXmlStorage.cs
- RuntimeCompatibilityAttribute.cs
- FrameAutomationPeer.cs
- GridViewCancelEditEventArgs.cs
- SystemFonts.cs
- MobileUserControl.cs
- DataGridClipboardHelper.cs
- Light.cs
- DrawingContextDrawingContextWalker.cs
- _ConnectStream.cs
- ArrayElementGridEntry.cs
- DesignerVerb.cs
- BindingNavigator.cs
- xmlfixedPageInfo.cs
- ASCIIEncoding.cs
- SqlDataSourceCustomCommandEditor.cs
- Timer.cs
- XmlDataSourceView.cs
- TreeView.cs
- SystemColors.cs
- ChannelDemuxer.cs
- SHA256.cs
- ToolStripContentPanelRenderEventArgs.cs
- FrugalList.cs
- ConfigurationManager.cs
- MenuCommands.cs
- DesignerAttribute.cs
- FixedDocumentPaginator.cs
- ObjectManager.cs
- CollectionBase.cs
- HtmlControl.cs
- VisualTreeUtils.cs
- ValueSerializer.cs
- ProtocolImporter.cs
- SoapClientMessage.cs
- TraceData.cs
- Duration.cs
- TagMapInfo.cs
- SqlParameterCollection.cs
- CompilerGeneratedAttribute.cs
- CodePrimitiveExpression.cs
- RightsManagementEncryptionTransform.cs
- HttpCacheVaryByContentEncodings.cs
- HwndStylusInputProvider.cs
- FormsAuthenticationEventArgs.cs
- StringDictionaryEditor.cs
- __ConsoleStream.cs
- EntityDesignerDataSourceView.cs
- WebRequest.cs
- UshortList2.cs
- ZipIOCentralDirectoryFileHeader.cs
- sqlmetadatafactory.cs
- DBDataPermissionAttribute.cs
- ProfileSection.cs
- SQLDecimalStorage.cs
- CompressEmulationStream.cs
- SQLSingleStorage.cs
- ColorKeyFrameCollection.cs
- GenerateScriptTypeAttribute.cs
- AdjustableArrowCap.cs
- SqlNodeAnnotation.cs
- ResourceDescriptionAttribute.cs
- RouteValueExpressionBuilder.cs
- DataBinding.cs
- WinFormsSecurity.cs
- EnumConverter.cs
- BitSet.cs
- ListMarkerLine.cs
- DataServiceQueryException.cs
- ListDictionary.cs
- BrowsableAttribute.cs
- Errors.cs
- ComplusEndpointConfigContainer.cs
- MSG.cs
- SessionPageStateSection.cs
- DictionarySectionHandler.cs
- CookielessHelper.cs
- QilGenerator.cs
- WindowsTreeView.cs
- Span.cs
- SerializerProvider.cs
- TypeSource.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- Tool.cs
- ProxyGenerationError.cs
- Ref.cs
- AspNetSynchronizationContext.cs
- JpegBitmapDecoder.cs
- ServicePointManager.cs
- StrokeCollection2.cs
- PerfCounterSection.cs
- TreeNodeBinding.cs
- SHA256.cs
- AssemblyCache.cs