Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Net / System / Net / Mail / HeaderCollection.cs / 3 / 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); } internal void InternalSet(string name, string value) { base.Set(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)); } if (!MimeBasePart.IsAnsi(value,false)) { throw new FormatException(SR.GetString(SR.InvalidHeaderValue)); } // 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); if (!MimeBasePart.IsAnsi(value,false)) { throw new FormatException(SR.GetString(SR.InvalidHeaderValue)); } // 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 { if (MailHeaderInfo.IsSingleton(name)) { base.Set(name, value); } else { base.Add(name, value); } } } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ZipIOLocalFileBlock.cs
- ProfessionalColorTable.cs
- ToolStripMenuItemDesigner.cs
- XmlDictionaryString.cs
- InstanceNormalEvent.cs
- Visual3D.cs
- RowsCopiedEventArgs.cs
- RangeValidator.cs
- CodeBinaryOperatorExpression.cs
- DateTimeUtil.cs
- FixedPosition.cs
- CommandManager.cs
- ForwardPositionQuery.cs
- ChannelPoolSettings.cs
- HttpRuntime.cs
- PeerNearMe.cs
- Compiler.cs
- Vector3DConverter.cs
- Popup.cs
- PropertyEntry.cs
- MulticastDelegate.cs
- DoWorkEventArgs.cs
- OdbcConnectionStringbuilder.cs
- CheckBox.cs
- Ops.cs
- EventEntry.cs
- DiffuseMaterial.cs
- FormViewUpdatedEventArgs.cs
- InfoCardBinaryReader.cs
- OracleParameterCollection.cs
- UIElementAutomationPeer.cs
- ToolStripDropDownMenu.cs
- ScrollPatternIdentifiers.cs
- BevelBitmapEffect.cs
- SqlLiftWhereClauses.cs
- listviewsubitemcollectioneditor.cs
- _HTTPDateParse.cs
- ScalarOps.cs
- DateTimeUtil.cs
- Configuration.cs
- ExpressionBinding.cs
- XPathAncestorIterator.cs
- HitTestFilterBehavior.cs
- XAMLParseException.cs
- RequestCachingSection.cs
- FileUpload.cs
- WindowsUpDown.cs
- CompilerInfo.cs
- SrgsRule.cs
- List.cs
- BasicExpandProvider.cs
- RequestCache.cs
- DateTimeConverter2.cs
- WebPartCatalogCloseVerb.cs
- xsdvalidator.cs
- XmlHierarchicalEnumerable.cs
- AcceptorSessionSymmetricMessageSecurityProtocol.cs
- HttpGetServerProtocol.cs
- SessionEndedEventArgs.cs
- Gdiplus.cs
- RetrieveVirtualItemEventArgs.cs
- MdbDataFileEditor.cs
- RoleManagerModule.cs
- NegotiateStream.cs
- TableLayoutRowStyleCollection.cs
- _SpnDictionary.cs
- BaseTemplateBuildProvider.cs
- DataSourceDescriptorCollection.cs
- WindowsFormsHost.cs
- DrawingContext.cs
- DataGridBoundColumn.cs
- ModelItemCollectionImpl.cs
- X509CertificateTrustedIssuerElementCollection.cs
- DataGridCaption.cs
- CommandSet.cs
- AutoGeneratedFieldProperties.cs
- COM2TypeInfoProcessor.cs
- FromReply.cs
- Binding.cs
- ManipulationDevice.cs
- PreloadedPackages.cs
- NetStream.cs
- NullExtension.cs
- ProcessingInstructionAction.cs
- AsyncOperationManager.cs
- MobileUserControl.cs
- DataIdProcessor.cs
- _IPv4Address.cs
- BitmapEffectGroup.cs
- Encoder.cs
- Win32.cs
- SqlConnectionHelper.cs
- controlskin.cs
- IntegerFacetDescriptionElement.cs
- WebDescriptionAttribute.cs
- ResolveNameEventArgs.cs
- CodeVariableDeclarationStatement.cs
- WindowsImpersonationContext.cs
- WindowsSecurityToken.cs
- SendMailErrorEventArgs.cs