Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / Mail / HeaderCollection.cs / 1305376 / HeaderCollection.cs
using System; using System.Collections.Specialized; using System.Net.Mail; using System.Globalization; namespace System.Net.Mime { ////// Summary description for HeaderCollection. /// internal class HeaderCollection: NameValueCollection { MimeBasePart part = null; // default constructor // intentionally override the default comparer in the derived base class internal HeaderCollection() : base(StringComparer.OrdinalIgnoreCase) { } public override void Remove(string name) { if(Logging.On)Logging.PrintInfo(Logging.Web, this, "Remove", name); if (name == null) throw new ArgumentNullException("name"); if (name == string.Empty) throw new ArgumentException(SR.GetString(SR.net_emptystringcall,"name"), "name"); MailHeaderID id = MailHeaderInfo.GetID(name); if (id == MailHeaderID.ContentType && part != null) { part.ContentType = null; } else if (id == MailHeaderID.ContentDisposition && part is MimePart) { ((MimePart)part).ContentDisposition = null; } base.Remove(name); } public override string Get(string name) { if(Logging.On)Logging.PrintInfo(Logging.Web, this, "Get", name); if (name == null) throw new ArgumentNullException("name"); if (name == string.Empty) throw new ArgumentException(SR.GetString(SR.net_emptystringcall,"name"), "name"); MailHeaderID id = MailHeaderInfo.GetID(name); if (id == MailHeaderID.ContentType && part != null) { part.ContentType.PersistIfNeeded(this,false); } else if (id == MailHeaderID.ContentDisposition && part is MimePart) { ((MimePart)part).ContentDisposition.PersistIfNeeded(this, false); } return base.Get(name); } public override string[] GetValues(string name) { if(Logging.On)Logging.PrintInfo(Logging.Web, this, "Get", name); if (name == null) throw new ArgumentNullException("name"); if (name == string.Empty) throw new ArgumentException(SR.GetString(SR.net_emptystringcall,"name"), "name"); MailHeaderID id = MailHeaderInfo.GetID(name); if (id == MailHeaderID.ContentType && part != null) { part.ContentType.PersistIfNeeded(this,false); } else if (id == MailHeaderID.ContentDisposition && part is MimePart) { ((MimePart)part).ContentDisposition.PersistIfNeeded(this, false); } return base.GetValues(name); } internal void InternalRemove(string name){ base.Remove(name); } //set an existing header's value internal void InternalSet(string name, string value) { base.Set(name, value); } //add a new header and set its value internal void InternalAdd(string name, string value) { if (MailHeaderInfo.IsSingleton(name)) { base.Set(name, value); } else { base.Add(name, value); } } public override void Set(string name, string value) { if(Logging.On)Logging.PrintInfo(Logging.Web, this, "Set", name.ToString() + "=" + value.ToString()); if (name == null) throw new ArgumentNullException("name"); if (value == null) throw new ArgumentNullException("value"); if (name == string.Empty) throw new ArgumentException(SR.GetString(SR.net_emptystringcall,"name"), "name"); if (value == string.Empty) throw new ArgumentException(SR.GetString(SR.net_emptystringcall,"value"), "name"); if (!MimeBasePart.IsAscii(name,false)) { throw new FormatException(SR.GetString(SR.InvalidHeaderName)); } // normalize the case of well known headers name = MailHeaderInfo.NormalizeCase(name); MailHeaderID id = MailHeaderInfo.GetID(name); if (id == MailHeaderID.ContentType && part != null) { part.ContentType.Set(value.ToLower(CultureInfo.InvariantCulture), this); } else if (id == MailHeaderID.ContentDisposition && part is MimePart) { ((MimePart)part).ContentDisposition.Set(value.ToLower(CultureInfo.InvariantCulture), this); } else { base.Set(name, value); } } public override void Add(string name, string value) { if(Logging.On)Logging.PrintInfo(Logging.Web, this, "Add", name.ToString() + "=" + value.ToString()); if (name == null) throw new ArgumentNullException("name"); if (value == null) throw new ArgumentNullException("value"); if (name == string.Empty) throw new ArgumentException(SR.GetString(SR.net_emptystringcall,"name"), "name"); if (value == string.Empty) throw new ArgumentException(SR.GetString(SR.net_emptystringcall,"value"), "name"); MailBnfHelper.ValidateHeaderName(name); // normalize the case of well known headers name = MailHeaderInfo.NormalizeCase(name); MailHeaderID id = MailHeaderInfo.GetID(name); if(id == MailHeaderID.ContentType && part != null) { part.ContentType.Set(value.ToLower(CultureInfo.InvariantCulture), this); } else if (id == MailHeaderID.ContentDisposition && part is MimePart) { ((MimePart)part).ContentDisposition.Set(value.ToLower(CultureInfo.InvariantCulture), this); } else { InternalAdd(name, value); } } } } // 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
- FileUtil.cs
- SingleConverter.cs
- ToolStripDropDownButton.cs
- ToolStripSettings.cs
- KerberosSecurityTokenAuthenticator.cs
- ExpressionBuilderCollection.cs
- BulletDecorator.cs
- WmlPhoneCallAdapter.cs
- CatalogPart.cs
- AudioBase.cs
- _AutoWebProxyScriptEngine.cs
- Crc32.cs
- ConfigurationStrings.cs
- PointKeyFrameCollection.cs
- SetIndexBinder.cs
- TransformedBitmap.cs
- QueryRewriter.cs
- AdvancedBindingEditor.cs
- BitmapEffectDrawing.cs
- RowUpdatingEventArgs.cs
- SynchronizedInputHelper.cs
- AutomationElementIdentifiers.cs
- SecUtil.cs
- ComponentCollection.cs
- SatelliteContractVersionAttribute.cs
- DoubleIndependentAnimationStorage.cs
- SqlClientFactory.cs
- FormatSettings.cs
- Animatable.cs
- Point3DValueSerializer.cs
- LocatorBase.cs
- StackOverflowException.cs
- PlainXmlWriter.cs
- CollectionBuilder.cs
- UriParserTemplates.cs
- xmlsaver.cs
- SubclassTypeValidator.cs
- CodeAccessPermission.cs
- XpsColorContext.cs
- HTMLTagNameToTypeMapper.cs
- Path.cs
- ClipboardData.cs
- Transform3DCollection.cs
- login.cs
- BasicKeyConstraint.cs
- TextStore.cs
- AdornerPresentationContext.cs
- DetailsViewInsertEventArgs.cs
- XmlSigningNodeWriter.cs
- CodeDirectionExpression.cs
- DefaultEventAttribute.cs
- ConsoleKeyInfo.cs
- OraclePermissionAttribute.cs
- DropShadowEffect.cs
- BasicDesignerLoader.cs
- ConfigsHelper.cs
- dataprotectionpermissionattribute.cs
- OdbcEnvironmentHandle.cs
- ClientData.cs
- Content.cs
- SendSecurityHeaderElementContainer.cs
- TextCharacters.cs
- FileInfo.cs
- XamlDesignerSerializationManager.cs
- DeploymentSectionCache.cs
- XmlSchemaException.cs
- AssemblyHash.cs
- XmlEventCache.cs
- SqlDataSourceQueryEditorForm.cs
- TextServicesManager.cs
- PartialTrustVisibleAssemblyCollection.cs
- FigureParaClient.cs
- DialogResultConverter.cs
- PieceDirectory.cs
- SecurityHeaderTokenResolver.cs
- Native.cs
- PeerTransportListenAddressValidator.cs
- InfoCardAsymmetricCrypto.cs
- TextRange.cs
- DelegatingTypeDescriptionProvider.cs
- Propagator.ExtentPlaceholderCreator.cs
- CqlGenerator.cs
- QilValidationVisitor.cs
- ISAPIApplicationHost.cs
- UriSection.cs
- DataGridViewColumnEventArgs.cs
- XslAst.cs
- MutexSecurity.cs
- Menu.cs
- DataGridColumnStyleMappingNameEditor.cs
- WebPartActionVerb.cs
- PropertyGridEditorPart.cs
- EntityConnectionStringBuilder.cs
- DbCommandTree.cs
- AuthenticatedStream.cs
- ListViewDeletedEventArgs.cs
- Vector3DValueSerializer.cs
- XmlDesignerDataSourceView.cs
- ResourceDictionary.cs
- PinnedBufferMemoryStream.cs