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
- CreateParams.cs
- AppSettingsExpressionBuilder.cs
- DesignerProperties.cs
- Scene3D.cs
- GenericPrincipal.cs
- WebCategoryAttribute.cs
- Graph.cs
- RestHandler.cs
- Vector3D.cs
- NonBatchDirectoryCompiler.cs
- FileVersion.cs
- MemoryMappedFile.cs
- PolicyManager.cs
- OletxVolatileEnlistment.cs
- ResourceAssociationType.cs
- DataGridViewComboBoxColumn.cs
- ZipIOExtraFieldPaddingElement.cs
- MimeXmlImporter.cs
- AstNode.cs
- GeneralTransform3DCollection.cs
- WindowsSpinner.cs
- TemplateParser.cs
- cookiecollection.cs
- SqlDataSourceFilteringEventArgs.cs
- BamlResourceSerializer.cs
- DialogWindow.cs
- AttachmentCollection.cs
- TrustManagerPromptUI.cs
- CultureTable.cs
- PolicyImporterElementCollection.cs
- ExceptionUtil.cs
- Italic.cs
- AttributeEmitter.cs
- XmlAnyElementAttribute.cs
- OpenTypeLayoutCache.cs
- DecoderFallbackWithFailureFlag.cs
- ModuleBuilderData.cs
- ProxyGenerator.cs
- CLRBindingWorker.cs
- ComplexLine.cs
- ReturnValue.cs
- ConfigurationValidatorAttribute.cs
- dataSvcMapFileLoader.cs
- ToolStripMenuItem.cs
- X509Certificate2Collection.cs
- Polyline.cs
- DataBinding.cs
- DrawListViewItemEventArgs.cs
- ListView.cs
- PropertyCollection.cs
- PaintValueEventArgs.cs
- VersionPair.cs
- ClientTargetCollection.cs
- DefaultEvaluationContext.cs
- HtmlMobileTextWriter.cs
- XPathDocumentBuilder.cs
- CodeDOMUtility.cs
- WrappedKeySecurityToken.cs
- XmlDataSource.cs
- MembershipValidatePasswordEventArgs.cs
- AppDomainGrammarProxy.cs
- DocumentPropertiesDialog.cs
- DemultiplexingClientMessageFormatter.cs
- APCustomTypeDescriptor.cs
- VerificationException.cs
- HandlerElement.cs
- SchemaImporterExtensionElementCollection.cs
- DesignTimeVisibleAttribute.cs
- XPathChildIterator.cs
- TreeViewBindingsEditor.cs
- Size3D.cs
- UrlPath.cs
- StructuralObject.cs
- TableLayoutStyleCollection.cs
- Transaction.cs
- NameValueFileSectionHandler.cs
- JsonClassDataContract.cs
- TdsRecordBufferSetter.cs
- FacetChecker.cs
- TagMapCollection.cs
- XmlSigningNodeWriter.cs
- HTMLTagNameToTypeMapper.cs
- HMACRIPEMD160.cs
- BitSet.cs
- LicenseManager.cs
- RSAPKCS1SignatureFormatter.cs
- FunctionImportElement.cs
- SymbolTable.cs
- SimpleWebHandlerParser.cs
- Ref.cs
- SqlNode.cs
- WrappedKeySecurityTokenParameters.cs
- SRef.cs
- AnnotationObservableCollection.cs
- FlowDocumentPageViewerAutomationPeer.cs
- TextPointerBase.cs
- ICollection.cs
- CatalogPartChrome.cs
- XmlComplianceUtil.cs
- QueryExpr.cs