Code:
/ FX-1434 / FX-1434 / 1.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
- XmlSchemaAny.cs
- WindowsTab.cs
- ResourceDisplayNameAttribute.cs
- TriggerBase.cs
- MethodBuilder.cs
- SpellerInterop.cs
- AnnotationHelper.cs
- DropSourceBehavior.cs
- NameService.cs
- DirectoryObjectSecurity.cs
- DetailsView.cs
- EncoderFallback.cs
- XmlTextAttribute.cs
- MarkupCompilePass2.cs
- ImageCollectionCodeDomSerializer.cs
- SafeEventHandle.cs
- UIPropertyMetadata.cs
- SimpleBitVector32.cs
- ResourceSet.cs
- Mouse.cs
- Debugger.cs
- _SecureChannel.cs
- ProfileElement.cs
- Propagator.JoinPropagator.cs
- NonVisualControlAttribute.cs
- ThreadTrace.cs
- DrawingAttributeSerializer.cs
- SQLByte.cs
- WithParamAction.cs
- CustomErrorCollection.cs
- SqlReorderer.cs
- XhtmlTextWriter.cs
- ColumnCollection.cs
- diagnosticsswitches.cs
- BitmapEffect.cs
- RootProfilePropertySettingsCollection.cs
- Message.cs
- Directory.cs
- XmlSchemaImporter.cs
- CodeTypeParameter.cs
- InputDevice.cs
- x509utils.cs
- ToggleButtonAutomationPeer.cs
- FontCacheUtil.cs
- PixelFormats.cs
- DataColumn.cs
- Point3DAnimationBase.cs
- Exceptions.cs
- XmlSchemaSimpleType.cs
- OdbcHandle.cs
- MobileControlsSectionHelper.cs
- CustomErrorCollection.cs
- XmlWriterDelegator.cs
- WebBrowserDesigner.cs
- SecUtil.cs
- RTLAwareMessageBox.cs
- OutOfProcStateClientManager.cs
- MemberMemberBinding.cs
- JoinCqlBlock.cs
- WorkflowTerminatedException.cs
- DataObjectEventArgs.cs
- ProvidersHelper.cs
- AttachedPropertyBrowsableAttribute.cs
- DataGridTextBox.cs
- NotFiniteNumberException.cs
- HotSpotCollection.cs
- Simplifier.cs
- ObjectDataSourceEventArgs.cs
- LowerCaseStringConverter.cs
- TdsEnums.cs
- HttpWriter.cs
- GridErrorDlg.cs
- PtsPage.cs
- HtmlInputReset.cs
- WebContentFormatHelper.cs
- WebPartTransformerCollection.cs
- BamlBinaryWriter.cs
- ExecutionEngineException.cs
- DataGridCell.cs
- Effect.cs
- ForwardPositionQuery.cs
- safelink.cs
- SByteStorage.cs
- ConnectionConsumerAttribute.cs
- BulletedList.cs
- SqlCharStream.cs
- dbenumerator.cs
- ImageCodecInfo.cs
- TreeViewItemAutomationPeer.cs
- DictionaryGlobals.cs
- ValidatorCompatibilityHelper.cs
- XmlSchemaValidator.cs
- StorageModelBuildProvider.cs
- ResizingMessageFilter.cs
- DragAssistanceManager.cs
- WebPartAddingEventArgs.cs
- BinaryMessageFormatter.cs
- DesignerVerbCollection.cs
- SqlDependency.cs
- TrackingParticipant.cs