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
- SqlGatherProducedAliases.cs
- BitmapInitialize.cs
- SoapSchemaMember.cs
- RsaSecurityKey.cs
- RadioButton.cs
- WriteableBitmap.cs
- ReceiveActivityDesignerTheme.cs
- BaseParaClient.cs
- AccessDataSource.cs
- CursorConverter.cs
- MemoryFailPoint.cs
- ToolBarPanel.cs
- CodeCompileUnit.cs
- SessionPageStatePersister.cs
- WSHttpSecurityElement.cs
- BindingList.cs
- Function.cs
- DataGridViewColumn.cs
- CssTextWriter.cs
- DataGridSortCommandEventArgs.cs
- CqlIdentifiers.cs
- StringSorter.cs
- Int32Storage.cs
- DataBinding.cs
- StylusPointProperty.cs
- XmlNodeWriter.cs
- EventPropertyMap.cs
- TemplatedMailWebEventProvider.cs
- ContextBase.cs
- AnimationClockResource.cs
- SQLRoleProvider.cs
- HostVisual.cs
- AssemblyHelper.cs
- ApplicationTrust.cs
- FixedPage.cs
- RangeValidator.cs
- ConfigXmlText.cs
- StringExpressionSet.cs
- UnmanagedMemoryStreamWrapper.cs
- MultiSelector.cs
- Lasso.cs
- BezierSegment.cs
- Form.cs
- ClosableStream.cs
- SmiEventSink_Default.cs
- MetadataStore.cs
- InputScope.cs
- Activation.cs
- IUnknownConstantAttribute.cs
- ScriptReferenceEventArgs.cs
- ActivationServices.cs
- XamlSerializerUtil.cs
- StandardMenuStripVerb.cs
- QuestionEventArgs.cs
- MatrixAnimationUsingKeyFrames.cs
- EntityAdapter.cs
- ExternalFile.cs
- PageSettings.cs
- Item.cs
- InternalConfirm.cs
- SimpleBitVector32.cs
- StreamReader.cs
- OdbcParameter.cs
- QueryCorrelationInitializer.cs
- SvcMapFileSerializer.cs
- SmiEventSink_Default.cs
- WorkflowIdleElement.cs
- JoinSymbol.cs
- ScriptComponentDescriptor.cs
- PathData.cs
- DefaultHttpHandler.cs
- FilteredReadOnlyMetadataCollection.cs
- DataErrorValidationRule.cs
- CheckPair.cs
- _ConnectionGroup.cs
- ImageAutomationPeer.cs
- SelectionHighlightInfo.cs
- ActivationArguments.cs
- FileEnumerator.cs
- Root.cs
- BinaryObjectWriter.cs
- WebEventTraceProvider.cs
- GC.cs
- MULTI_QI.cs
- DataGridViewDataConnection.cs
- MaterialGroup.cs
- MdImport.cs
- Context.cs
- _UriTypeConverter.cs
- EastAsianLunisolarCalendar.cs
- SoapAttributeOverrides.cs
- RsaSecurityTokenParameters.cs
- NegotiateStream.cs
- ToolStripContainer.cs
- SettingsPropertyNotFoundException.cs
- PrintPreviewGraphics.cs
- EdmFunctions.cs
- PhysicalFontFamily.cs
- FontEmbeddingManager.cs