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
- PriorityBinding.cs
- ScriptManagerProxy.cs
- DefaultSettingsSection.cs
- Stackframe.cs
- HostUtils.cs
- UnsafeNativeMethodsCLR.cs
- RTTypeWrapper.cs
- DesignerTransactionCloseEvent.cs
- regiisutil.cs
- IndexedString.cs
- UiaCoreTypesApi.cs
- Module.cs
- CopyCodeAction.cs
- XmlReflectionImporter.cs
- DataMemberConverter.cs
- IUnknownConstantAttribute.cs
- Sentence.cs
- WindowsProgressbar.cs
- sqlstateclientmanager.cs
- ReservationNotFoundException.cs
- securitycriticaldata.cs
- ListSortDescription.cs
- ProxyRpc.cs
- LeafCellTreeNode.cs
- ToolStripOverflowButton.cs
- KeyValuePair.cs
- StreamMarshaler.cs
- OracleConnectionString.cs
- CommandExpr.cs
- WindowPattern.cs
- AsynchronousChannelMergeEnumerator.cs
- SqlMethodTransformer.cs
- ClientSession.cs
- SessionPageStateSection.cs
- DataGridViewColumnTypePicker.cs
- GrammarBuilderWildcard.cs
- ClientBuildManager.cs
- ReflectTypeDescriptionProvider.cs
- Int32Rect.cs
- UIntPtr.cs
- IPEndPoint.cs
- GridViewPageEventArgs.cs
- DesignerMetadata.cs
- ApplicationGesture.cs
- LinkedResourceCollection.cs
- PhysicalFontFamily.cs
- ICspAsymmetricAlgorithm.cs
- XmlSchemaProviderAttribute.cs
- BaseCollection.cs
- Tablet.cs
- ExtensionQuery.cs
- IIS7UserPrincipal.cs
- BindingListCollectionView.cs
- sqlpipe.cs
- ImageAnimator.cs
- HtmlElement.cs
- SpecularMaterial.cs
- HandleScope.cs
- HtmlElementEventArgs.cs
- RangeExpression.cs
- SinglePhaseEnlistment.cs
- SvcMapFileSerializer.cs
- DynamicQueryStringParameter.cs
- EDesignUtil.cs
- ButtonChrome.cs
- PaginationProgressEventArgs.cs
- Int32EqualityComparer.cs
- ZeroOpNode.cs
- XmlElementList.cs
- ToolStripCustomTypeDescriptor.cs
- SmiGettersStream.cs
- CompositeControl.cs
- ClientSession.cs
- ProtectedProviderSettings.cs
- Pipe.cs
- Internal.cs
- BaseUriHelper.cs
- ThemeDictionaryExtension.cs
- UnmanagedHandle.cs
- DoubleLink.cs
- PropertyEntry.cs
- FontSizeConverter.cs
- SoapHeaderException.cs
- RadioButtonRenderer.cs
- BindingExpressionBase.cs
- PropertyFilterAttribute.cs
- ResXFileRef.cs
- StaticResourceExtension.cs
- FormatException.cs
- GenericAuthenticationEventArgs.cs
- XslVisitor.cs
- BooleanConverter.cs
- ImageKeyConverter.cs
- PersonalizableTypeEntry.cs
- SqlProcedureAttribute.cs
- OutputCacheProfileCollection.cs
- ConfigXmlText.cs
- IdleTimeoutMonitor.cs
- HtmlDocument.cs
- SyntaxCheck.cs