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
- ReachBasicContext.cs
- Int32.cs
- OutgoingWebRequestContext.cs
- PolyLineSegment.cs
- TreeView.cs
- Frame.cs
- X509CertificateTrustedIssuerElement.cs
- CodeTypeMember.cs
- DrawingGroup.cs
- Merger.cs
- StringArrayConverter.cs
- ObjRef.cs
- ASCIIEncoding.cs
- XmlAttribute.cs
- XmlSchemaDocumentation.cs
- Configuration.cs
- ZoomPercentageConverter.cs
- MemoryMappedFile.cs
- PostBackOptions.cs
- MediaTimeline.cs
- Menu.cs
- IssuanceLicense.cs
- BindingValueChangedEventArgs.cs
- ResponseStream.cs
- OciLobLocator.cs
- KeyEvent.cs
- PlacementWorkspace.cs
- CodeActivityContext.cs
- VectorKeyFrameCollection.cs
- XamlPathDataSerializer.cs
- URLIdentityPermission.cs
- XamlTemplateSerializer.cs
- CorruptStoreException.cs
- SignerInfo.cs
- PngBitmapEncoder.cs
- SourceSwitch.cs
- BehaviorEditorPart.cs
- EnumValAlphaComparer.cs
- NamespaceEmitter.cs
- SecurityCriticalDataForSet.cs
- FocusWithinProperty.cs
- UnorderedHashRepartitionStream.cs
- TextServicesCompartmentEventSink.cs
- Automation.cs
- TableLayoutPanelCellPosition.cs
- ListBase.cs
- GrammarBuilderPhrase.cs
- MarkupObject.cs
- HtmlUtf8RawTextWriter.cs
- _DigestClient.cs
- ContentElement.cs
- AjaxFrameworkAssemblyAttribute.cs
- DivideByZeroException.cs
- SqlCommand.cs
- NodeLabelEditEvent.cs
- ExpandCollapseIsCheckedConverter.cs
- ClientClassGenerator.cs
- FrameworkContentElement.cs
- KeyedHashAlgorithm.cs
- StylusShape.cs
- DBBindings.cs
- ISAPIApplicationHost.cs
- COM2ComponentEditor.cs
- PriorityRange.cs
- AbsoluteQuery.cs
- CodeAttributeArgument.cs
- DataMisalignedException.cs
- EntitySqlQueryCacheEntry.cs
- BuildProviderAppliesToAttribute.cs
- ContentPosition.cs
- OleDbErrorCollection.cs
- Cloud.cs
- DescendantQuery.cs
- RefreshEventArgs.cs
- SqlTypeSystemProvider.cs
- LocalizationComments.cs
- SmtpNetworkElement.cs
- UnionExpr.cs
- ErrorCodes.cs
- OutputScopeManager.cs
- KeyEvent.cs
- DEREncoding.cs
- ActivitiesCollection.cs
- TcpSocketManager.cs
- WebPartTransformerCollection.cs
- DBPropSet.cs
- TargetConverter.cs
- WebServiceFaultDesigner.cs
- XmlSiteMapProvider.cs
- SapiGrammar.cs
- ValuePattern.cs
- CollectionEditVerbManager.cs
- LineBreakRecord.cs
- RectIndependentAnimationStorage.cs
- WebRequest.cs
- CommandBinding.cs
- AnnotationResourceChangedEventArgs.cs
- InfoCardPolicy.cs
- PropertyDescriptor.cs
- MethodBuilderInstantiation.cs