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
- TextSerializer.cs
- ControlsConfig.cs
- TCEAdapterGenerator.cs
- TreeViewDesigner.cs
- StringWriter.cs
- ScriptingJsonSerializationSection.cs
- ConfigXmlCDataSection.cs
- PrintDialogDesigner.cs
- ParentQuery.cs
- ListItemParagraph.cs
- AnchoredBlock.cs
- TypeContext.cs
- XamlNamespaceHelper.cs
- CollectionBase.cs
- GuidelineSet.cs
- ToolStripDropDownItem.cs
- ArgIterator.cs
- DescendantBaseQuery.cs
- PageBuildProvider.cs
- DecimalStorage.cs
- XmlDataImplementation.cs
- SimpleFieldTemplateUserControl.cs
- UriTemplateVariablePathSegment.cs
- WmpBitmapEncoder.cs
- MimeFormatter.cs
- PerspectiveCamera.cs
- BStrWrapper.cs
- GacUtil.cs
- CmsInterop.cs
- CompoundFileIOPermission.cs
- ContextBase.cs
- HashCodeCombiner.cs
- FieldInfo.cs
- Rijndael.cs
- PrincipalPermission.cs
- ConstraintEnumerator.cs
- ManagementEventArgs.cs
- XmlElementAttributes.cs
- Visual.cs
- XmlMapping.cs
- MediaContextNotificationWindow.cs
- CustomValidator.cs
- ButtonChrome.cs
- Model3D.cs
- pingexception.cs
- NamespaceMapping.cs
- ArcSegment.cs
- UpdatePanelControlTrigger.cs
- DocumentViewerBase.cs
- DetailsViewRow.cs
- OrthographicCamera.cs
- WeakEventTable.cs
- _ListenerRequestStream.cs
- SqlExpressionNullability.cs
- querybuilder.cs
- CriticalFinalizerObject.cs
- SqlSupersetValidator.cs
- LocationSectionRecord.cs
- RadioButtonStandardAdapter.cs
- Rfc4050KeyFormatter.cs
- ItemCheckEvent.cs
- XamlTypeMapperSchemaContext.cs
- VoiceChangeEventArgs.cs
- FunctionOverloadResolver.cs
- XamlWriter.cs
- StringAnimationBase.cs
- CounterSampleCalculator.cs
- PackagePart.cs
- MdiWindowListStrip.cs
- StandardOleMarshalObject.cs
- TextRangeAdaptor.cs
- DiscreteKeyFrames.cs
- SqlConnectionFactory.cs
- BinaryKeyIdentifierClause.cs
- XmlNodeReader.cs
- SettingsPropertyCollection.cs
- SecurityDocument.cs
- DependsOnAttribute.cs
- AllMembershipCondition.cs
- indexingfiltermarshaler.cs
- DetailsViewUpdateEventArgs.cs
- GraphicsState.cs
- OdbcConnection.cs
- WebPartCloseVerb.cs
- XsltLibrary.cs
- DataPagerFieldItem.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- HttpWebRequest.cs
- TablePatternIdentifiers.cs
- ReaderContextStackData.cs
- AuthenticationModulesSection.cs
- PageContentAsyncResult.cs
- XsltConvert.cs
- SmiSettersStream.cs
- Model3DGroup.cs
- EntityDataSource.cs
- HtmlHead.cs
- Attributes.cs
- AttachInfo.cs
- EventsTab.cs