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
- EditBehavior.cs
- Line.cs
- PageThemeParser.cs
- OleDbSchemaGuid.cs
- TransactedBatchingElement.cs
- Rotation3D.cs
- ConstructorBuilder.cs
- SelectedDatesCollection.cs
- xmlformatgeneratorstatics.cs
- HashCryptoHandle.cs
- UnicodeEncoding.cs
- TreeView.cs
- IntegerFacetDescriptionElement.cs
- PolicyException.cs
- FixUp.cs
- SerializableAuthorizationContext.cs
- DataListItemEventArgs.cs
- WebPartConnectionsConnectVerb.cs
- DbConnectionPoolGroupProviderInfo.cs
- CategoryNameCollection.cs
- ParameterReplacerVisitor.cs
- TimelineCollection.cs
- XmlLinkedNode.cs
- DrawingCollection.cs
- FormViewCommandEventArgs.cs
- ScriptingWebServicesSectionGroup.cs
- DataSet.cs
- SafeProcessHandle.cs
- ViewStateException.cs
- ColorMap.cs
- Geometry.cs
- XpsException.cs
- ProjectedWrapper.cs
- BindingMemberInfo.cs
- PermissionListSet.cs
- IisTraceListener.cs
- WithStatement.cs
- Baml2006KeyRecord.cs
- TraceHelpers.cs
- GridViewDeletedEventArgs.cs
- ButtonBaseAutomationPeer.cs
- NetWebProxyFinder.cs
- StringToken.cs
- ClientApiGenerator.cs
- HtmlTernaryTree.cs
- PrintingPermissionAttribute.cs
- Point3DCollection.cs
- BigInt.cs
- ScriptManager.cs
- InternalPermissions.cs
- ColorAnimationBase.cs
- DataGridViewUtilities.cs
- TileModeValidation.cs
- SafeFileMappingHandle.cs
- OrderedDictionary.cs
- UpDownBase.cs
- VarRemapper.cs
- CompiledIdentityConstraint.cs
- ExtendLockCommand.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- ScrollProviderWrapper.cs
- EdmMember.cs
- EventSource.cs
- DockProviderWrapper.cs
- WindowsMenu.cs
- XmlDataSourceView.cs
- SupportsEventValidationAttribute.cs
- GeometryDrawing.cs
- NegatedCellConstant.cs
- OleServicesContext.cs
- SoapConverter.cs
- SQLSingle.cs
- BamlTreeNode.cs
- DataGridViewSelectedRowCollection.cs
- OdbcConnectionString.cs
- PartialClassGenerationTask.cs
- ExtendedProtectionPolicy.cs
- DbModificationCommandTree.cs
- FieldNameLookup.cs
- WindowsFormsHostPropertyMap.cs
- WinInetCache.cs
- DrawingGroup.cs
- DocumentDesigner.cs
- Hash.cs
- HttpsHostedTransportConfiguration.cs
- LinqDataSourceInsertEventArgs.cs
- HostSecurityManager.cs
- CommandArguments.cs
- StylusTip.cs
- FormViewModeEventArgs.cs
- XmlSchemaObjectTable.cs
- StylusButton.cs
- CompilationUtil.cs
- HelpOperationInvoker.cs
- XmlTextWriter.cs
- EncoderBestFitFallback.cs
- Rect.cs
- TdsParserSafeHandles.cs
- MenuBindingsEditor.cs
- DbConvert.cs