Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / IdentityModel / System / IdentityModel / XmlAttributeHolder.cs / 1 / XmlAttributeHolder.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.IdentityModel { using System.Xml; struct XmlAttributeHolder { string prefix; string ns; string localName; string value; public static XmlAttributeHolder[] emptyArray = new XmlAttributeHolder[0]; public XmlAttributeHolder(string prefix, string localName, string ns, string value) { this.prefix = prefix; this.localName = localName; this.ns = ns; this.value = value; } public string Prefix { get { return prefix; } } public string NamespaceUri { get { return ns; } } public string LocalName { get { return localName; } } public string Value { get { return value; } } public void WriteTo(XmlWriter writer) { writer.WriteStartAttribute(prefix, localName, ns); writer.WriteString(value); writer.WriteEndAttribute(); } public static void WriteAttributes(XmlAttributeHolder[] attributes, XmlWriter writer) { for (int i = 0; i < attributes.Length; i++) attributes[i].WriteTo(writer); } public static XmlAttributeHolder[] ReadAttributes(XmlDictionaryReader reader) { int maxSizeOfHeaders = int.MaxValue; return ReadAttributes(reader, ref maxSizeOfHeaders); } public static XmlAttributeHolder[] ReadAttributes(XmlDictionaryReader reader, ref int maxSizeOfHeaders) { if (reader.AttributeCount == 0) return emptyArray; XmlAttributeHolder[] attributes = new XmlAttributeHolder[reader.AttributeCount]; reader.MoveToFirstAttribute(); for (int i = 0; i < attributes.Length; i++) { string ns = reader.NamespaceURI; string localName = reader.LocalName; string prefix = reader.Prefix; string value = string.Empty; while (reader.ReadAttributeValue()) { if (value.Length == 0) value = reader.Value; else value += reader.Value; } Deduct(prefix, ref maxSizeOfHeaders); Deduct(localName, ref maxSizeOfHeaders); Deduct(ns, ref maxSizeOfHeaders); Deduct(value, ref maxSizeOfHeaders); attributes[i] = new XmlAttributeHolder(prefix, localName, ns, value); reader.MoveToNextAttribute(); } reader.MoveToElement(); return attributes; } static void Deduct(string s, ref int maxSizeOfHeaders) { int byteCount = s.Length * sizeof(char); if (byteCount > maxSizeOfHeaders) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString(SR.XmlBufferQuotaExceeded))); } maxSizeOfHeaders -= byteCount; } public static string GetAttribute(XmlAttributeHolder[] attributes, string localName, string ns) { for (int i = 0; i < attributes.Length; i++) if (attributes[i].LocalName == localName && attributes[i].NamespaceUri == ns) return attributes[i].Value; return null; } } } // 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
- VectorAnimationBase.cs
- AsyncOperationManager.cs
- ReflectionHelper.cs
- ToolboxItemImageConverter.cs
- Imaging.cs
- WindowPatternIdentifiers.cs
- SelectedDatesCollection.cs
- ProjectionPruner.cs
- PackageDigitalSignature.cs
- SparseMemoryStream.cs
- DataServiceRequest.cs
- ScriptingRoleServiceSection.cs
- SqlDataSourceView.cs
- SerializationAttributes.cs
- SolidColorBrush.cs
- TextBlockAutomationPeer.cs
- PersistenceProviderFactory.cs
- LinqExpressionNormalizer.cs
- CodeTypeDelegate.cs
- SqlVisitor.cs
- XmlSerializationWriter.cs
- ViewCellRelation.cs
- ValidationSummary.cs
- CollectionBase.cs
- ComponentCollection.cs
- OpacityConverter.cs
- AccessDataSourceView.cs
- ThicknessAnimation.cs
- AstNode.cs
- WebPartConnectionCollection.cs
- ClientData.cs
- WmlMobileTextWriter.cs
- UserValidatedEventArgs.cs
- mil_sdk_version.cs
- Stack.cs
- WebPartZone.cs
- GacUtil.cs
- StylusPoint.cs
- ConfigXmlReader.cs
- HandleRef.cs
- SectionXmlInfo.cs
- XmlDataProvider.cs
- PackageRelationshipCollection.cs
- DropDownButton.cs
- QilTernary.cs
- PathFigureCollection.cs
- GridItemProviderWrapper.cs
- _LocalDataStore.cs
- SqlDataSourceConfigureSelectPanel.cs
- OverflowException.cs
- NotifyInputEventArgs.cs
- AttachedProperty.cs
- BooleanAnimationBase.cs
- ContextInformation.cs
- SafeRightsManagementEnvironmentHandle.cs
- coordinatorscratchpad.cs
- CodeChecksumPragma.cs
- IPAddressCollection.cs
- webeventbuffer.cs
- CalendarDateRange.cs
- OrderByBuilder.cs
- WebPartCatalogCloseVerb.cs
- FamilyCollection.cs
- TypeUnloadedException.cs
- HttpRequestWrapper.cs
- Vector3DAnimation.cs
- VisemeEventArgs.cs
- SQLSingle.cs
- cache.cs
- InputLanguage.cs
- TypeDescriptionProvider.cs
- DiagnosticTrace.cs
- InvalidProgramException.cs
- RC2CryptoServiceProvider.cs
- InvalidCastException.cs
- LinqDataSourceDeleteEventArgs.cs
- NoClickablePointException.cs
- SafeCryptoHandles.cs
- SmtpNegotiateAuthenticationModule.cs
- ComboBoxRenderer.cs
- EntityModelSchemaGenerator.cs
- ImageFormatConverter.cs
- ZipPackagePart.cs
- AccessDataSourceWizardForm.cs
- UnsafeNativeMethods.cs
- SimpleExpression.cs
- DefaultEventAttribute.cs
- PackageFilter.cs
- MimeTextImporter.cs
- MessageDecoder.cs
- TreeNodeMouseHoverEvent.cs
- DocumentViewerHelper.cs
- Unit.cs
- NamespaceTable.cs
- processwaithandle.cs
- DeviceContexts.cs
- QueryStatement.cs
- ObjectStateManagerMetadata.cs
- PointConverter.cs
- CodeIdentifier.cs