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
- SqlDataSourceFilteringEventArgs.cs
- BitmapEffectRenderDataResource.cs
- ColumnMapCopier.cs
- IDQuery.cs
- QilFactory.cs
- CommentAction.cs
- BehaviorEditorPart.cs
- Bits.cs
- ClientTargetCollection.cs
- WsdlExporter.cs
- QueryReaderSettings.cs
- DBParameter.cs
- PathSegmentCollection.cs
- BindingExpressionBase.cs
- Size.cs
- AuthorizationRule.cs
- TriggerBase.cs
- PropertyGridEditorPart.cs
- InvokeMethodDesigner.xaml.cs
- TabControlCancelEvent.cs
- StubHelpers.cs
- AttributedMetaModel.cs
- ExceptionValidationRule.cs
- _NtlmClient.cs
- PageRequestManager.cs
- OutputCacheModule.cs
- RegexCharClass.cs
- EntityContainer.cs
- NativeMethods.cs
- SqlStream.cs
- RijndaelManagedTransform.cs
- DependencySource.cs
- BuilderPropertyEntry.cs
- ThemeConfigurationDialog.cs
- InvalidCastException.cs
- AutomationPeer.cs
- DataGridViewRowPostPaintEventArgs.cs
- SchemaNamespaceManager.cs
- StorageModelBuildProvider.cs
- ShutDownListener.cs
- HuffmanTree.cs
- MenuItem.cs
- TabletDeviceInfo.cs
- SrgsElementFactory.cs
- ImageMetadata.cs
- WorkflowOwnershipException.cs
- FixedSOMFixedBlock.cs
- Type.cs
- SyndicationItem.cs
- serverconfig.cs
- AddressUtility.cs
- XmlKeywords.cs
- UrlMappingsModule.cs
- ZipIOExtraField.cs
- StyleXamlParser.cs
- TemplateComponentConnector.cs
- ScaleTransform.cs
- DesignerGeometryHelper.cs
- ButtonRenderer.cs
- MetabaseServerConfig.cs
- ImageListImage.cs
- ClockController.cs
- _AutoWebProxyScriptEngine.cs
- Label.cs
- ConstantExpression.cs
- SmtpReplyReader.cs
- tibetanshape.cs
- SectionVisual.cs
- XPathMultyIterator.cs
- TransformerConfigurationWizardBase.cs
- BindingSource.cs
- ParseHttpDate.cs
- safex509handles.cs
- Win32SafeHandles.cs
- GradientBrush.cs
- DescendantQuery.cs
- WindowsStartMenu.cs
- AlternationConverter.cs
- ViewStateException.cs
- SqlParameterCollection.cs
- RootAction.cs
- SQLBinaryStorage.cs
- Cell.cs
- ComboBoxRenderer.cs
- SQLMoney.cs
- MeasureData.cs
- Literal.cs
- Propagator.JoinPropagator.cs
- securitycriticaldata.cs
- DictionaryGlobals.cs
- DragDrop.cs
- FlagPanel.cs
- ParameterToken.cs
- CompilerState.cs
- MembershipValidatePasswordEventArgs.cs
- NameSpaceExtractor.cs
- ListenerPerfCounters.cs
- BinaryReader.cs
- TextElementAutomationPeer.cs
- WindowPatternIdentifiers.cs