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
- EmptyReadOnlyDictionaryInternal.cs
- EFColumnProvider.cs
- AutomationPatternInfo.cs
- AutomationAttributeInfo.cs
- ExceptionHandlersDesigner.cs
- loginstatus.cs
- PageParser.cs
- DispatcherProcessingDisabled.cs
- XMLSchema.cs
- SimpleBitVector32.cs
- ConfigViewGenerator.cs
- GridLength.cs
- SrgsSubset.cs
- HtmlUtf8RawTextWriter.cs
- RouteParametersHelper.cs
- XmlILIndex.cs
- HttpWriter.cs
- ParameterModifier.cs
- ParameterDataSourceExpression.cs
- DoubleLink.cs
- HttpPostServerProtocol.cs
- ServicePointManagerElement.cs
- TypographyProperties.cs
- ConnectionManagementElementCollection.cs
- Query.cs
- ValueProviderWrapper.cs
- GridViewRowPresenterBase.cs
- UnsafeNativeMethodsMilCoreApi.cs
- RelationshipEndMember.cs
- Symbol.cs
- WsdlInspector.cs
- CachedBitmap.cs
- RecommendedAsConfigurableAttribute.cs
- HighContrastHelper.cs
- SortKey.cs
- BinaryObjectReader.cs
- ClientScriptItem.cs
- AppliedDeviceFiltersEditor.cs
- ServiceTimeoutsElement.cs
- TableMethodGenerator.cs
- BufferedWebEventProvider.cs
- ListBox.cs
- MetadataCache.cs
- ServiceReference.cs
- BindableTemplateBuilder.cs
- contentDescriptor.cs
- QueueException.cs
- NativeMethods.cs
- HttpDateParse.cs
- WindowsRichEditRange.cs
- uribuilder.cs
- Single.cs
- login.cs
- SqlDataSourceQueryConverter.cs
- Encoding.cs
- LockedAssemblyCache.cs
- CreateUserErrorEventArgs.cs
- WindowsAuthenticationModule.cs
- IndicCharClassifier.cs
- HtmlInputControl.cs
- ReferenceService.cs
- HttpResponseHeader.cs
- OleDbPermission.cs
- ImageKeyConverter.cs
- EditorAttribute.cs
- NativeMethods.cs
- DataServiceRequestException.cs
- DotExpr.cs
- __Error.cs
- wgx_exports.cs
- DrawItemEvent.cs
- DataMisalignedException.cs
- XmlStreamStore.cs
- Point4D.cs
- TripleDES.cs
- login.cs
- DropSource.cs
- ParameterReplacerVisitor.cs
- XamlVector3DCollectionSerializer.cs
- ItemAutomationPeer.cs
- VideoDrawing.cs
- Common.cs
- UserControl.cs
- MonthCalendarDesigner.cs
- XmlTextReaderImpl.cs
- TrustLevel.cs
- DeviceFiltersSection.cs
- mansign.cs
- DataGridDesigner.cs
- RayMeshGeometry3DHitTestResult.cs
- AutomationIdentifierGuids.cs
- ProgressBarAutomationPeer.cs
- CompiledQuery.cs
- DateTimeOffset.cs
- AtomPub10ServiceDocumentFormatter.cs
- LineGeometry.cs
- AxHostDesigner.cs
- FieldReference.cs
- XmlCharCheckingReader.cs
- WindowsHyperlink.cs