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
- ModuleBuilder.cs
- EventToken.cs
- SymbolPair.cs
- JsonWriter.cs
- IgnoreFlushAndCloseStream.cs
- StreamInfo.cs
- HandlerBase.cs
- WebEventCodes.cs
- Int64Converter.cs
- XmlSerializationWriter.cs
- WebConfigurationManager.cs
- PersistChildrenAttribute.cs
- ObjectDataSourceSelectingEventArgs.cs
- TripleDES.cs
- ScalarRestriction.cs
- BoolExpressionVisitors.cs
- GridSplitterAutomationPeer.cs
- ExecutionEngineException.cs
- SpanIndex.cs
- CacheMemory.cs
- TypeExtension.cs
- DbProviderServices.cs
- ArraySortHelper.cs
- TdsParserSessionPool.cs
- SqlCommandBuilder.cs
- Crc32Helper.cs
- MenuItemStyleCollection.cs
- ByteAnimation.cs
- Speller.cs
- AppDomainProtocolHandler.cs
- SqlReorderer.cs
- SQLBytesStorage.cs
- DataSourceSelectArguments.cs
- PersonalizableAttribute.cs
- RemoteWebConfigurationHostServer.cs
- CurrentTimeZone.cs
- XmlSchemaType.cs
- UIElementAutomationPeer.cs
- CodeRegionDirective.cs
- Column.cs
- webproxy.cs
- DataGridViewDataConnection.cs
- TableRowCollection.cs
- Message.cs
- ZipIOExtraFieldZip64Element.cs
- ShaderEffect.cs
- TemplateDefinition.cs
- ProcessThread.cs
- EventManager.cs
- IdentityNotMappedException.cs
- FileCodeGroup.cs
- GlyphInfoList.cs
- KeyEvent.cs
- Polygon.cs
- SerializationHelper.cs
- Pts.cs
- AssemblyAssociatedContentFileAttribute.cs
- SlipBehavior.cs
- DataGridViewCellParsingEventArgs.cs
- XmlExpressionDumper.cs
- DBCommandBuilder.cs
- OdbcDataReader.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- GridViewCancelEditEventArgs.cs
- PkcsUtils.cs
- Hyperlink.cs
- GeneralTransform.cs
- CommandLibraryHelper.cs
- SqlTriggerContext.cs
- PagedDataSource.cs
- designeractionbehavior.cs
- WebPartMenuStyle.cs
- SelectionRange.cs
- BlockUIContainer.cs
- OleDbReferenceCollection.cs
- ReaderWriterLockSlim.cs
- DispatcherObject.cs
- Style.cs
- HybridDictionary.cs
- NavigationFailedEventArgs.cs
- UserThread.cs
- PropertyConverter.cs
- ComponentManagerBroker.cs
- DependencyObjectPropertyDescriptor.cs
- RelationshipNavigation.cs
- MetadataArtifactLoaderCompositeResource.cs
- DataGridPageChangedEventArgs.cs
- LoginUtil.cs
- WebControl.cs
- SystemEvents.cs
- RedistVersionInfo.cs
- WindowsNonControl.cs
- Bits.cs
- PersonalizationEntry.cs
- DES.cs
- InvalidComObjectException.cs
- StyleXamlParser.cs
- ImageAnimator.cs
- SecuritySessionSecurityTokenProvider.cs
- SqlParameterCollection.cs