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
- UpDownEvent.cs
- RoutedEventValueSerializer.cs
- SafeNativeMemoryHandle.cs
- BulletedList.cs
- AssemblyBuilderData.cs
- LocalizableResourceBuilder.cs
- DbConnectionPoolGroupProviderInfo.cs
- WorkflowItemsPresenter.cs
- XmlReflectionMember.cs
- RepeatButton.cs
- CompiledQuery.cs
- EdmItemError.cs
- EditableLabelControl.cs
- CommandField.cs
- XPathPatternParser.cs
- WindowsListViewGroupHelper.cs
- DataView.cs
- FilteredDataSetHelper.cs
- Boolean.cs
- TabControl.cs
- CollectionEditVerbManager.cs
- ClientSession.cs
- RemoteWebConfigurationHostServer.cs
- _ConnectStream.cs
- GridViewColumn.cs
- regiisutil.cs
- DataGridViewControlCollection.cs
- Point.cs
- TagNameToTypeMapper.cs
- ServiceModelActivationSectionGroup.cs
- Behavior.cs
- ToolStrip.cs
- ViewManager.cs
- ReadOnlyHierarchicalDataSource.cs
- UInt64Storage.cs
- Preprocessor.cs
- DbCommandDefinition.cs
- MutexSecurity.cs
- SqlExpander.cs
- HScrollProperties.cs
- EntitySqlQueryBuilder.cs
- TimeSpanMinutesConverter.cs
- Rule.cs
- ExpandedWrapper.cs
- RequiredAttributeAttribute.cs
- TransactionInformation.cs
- HttpPostProtocolImporter.cs
- WebPartEditorOkVerb.cs
- TrackingParameters.cs
- AssemblyInfo.cs
- TdsEnums.cs
- safelink.cs
- SecUtil.cs
- ControlIdConverter.cs
- ManipulationCompletedEventArgs.cs
- CurrentTimeZone.cs
- CanonicalFontFamilyReference.cs
- PointValueSerializer.cs
- CodeDefaultValueExpression.cs
- MultiView.cs
- NavigationHelper.cs
- BufferedMessageWriter.cs
- NativeBuffer.cs
- DataGridTextBox.cs
- Int64Converter.cs
- CommonDialog.cs
- ApplyImportsAction.cs
- Schedule.cs
- CroppedBitmap.cs
- ProfileModule.cs
- RowsCopiedEventArgs.cs
- RegisteredExpandoAttribute.cs
- SoapAttributeOverrides.cs
- MailBnfHelper.cs
- UserControl.cs
- HtmlInputText.cs
- WbemProvider.cs
- ExpressionPrefixAttribute.cs
- SyndicationSerializer.cs
- DataGrid.cs
- PropertyValueUIItem.cs
- SystemParameters.cs
- CompoundFileDeflateTransform.cs
- WindowsEditBoxRange.cs
- NetworkStream.cs
- ChannelSinkStacks.cs
- HttpContext.cs
- TextEditorContextMenu.cs
- ProfilePropertySettings.cs
- SoapMessage.cs
- SqlLiftIndependentRowExpressions.cs
- MetafileEditor.cs
- rsa.cs
- ZipIOModeEnforcingStream.cs
- SafePEFileHandle.cs
- PersonalizableTypeEntry.cs
- MonitorWrapper.cs
- Int64Storage.cs
- CollectionViewGroupInternal.cs
- SqlDataAdapter.cs