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
- BreakRecordTable.cs
- XslTransform.cs
- FormViewRow.cs
- OracleMonthSpan.cs
- DiagnosticsConfigurationHandler.cs
- BitmapMetadataEnumerator.cs
- OpenFileDialog.cs
- DesignerValidationSummaryAdapter.cs
- ThreadSafeList.cs
- XsdBuildProvider.cs
- ModulesEntry.cs
- ComponentResourceKey.cs
- XmlnsCache.cs
- wgx_sdk_version.cs
- StringComparer.cs
- Pair.cs
- CollectionViewProxy.cs
- AspCompat.cs
- SearchExpression.cs
- UpdateTracker.cs
- SnapLine.cs
- ConfigurationPermission.cs
- XmlObjectSerializerContext.cs
- DateTimeConstantAttribute.cs
- ChannelHandler.cs
- WebPartDeleteVerb.cs
- ReadWriteSpinLock.cs
- Visual3D.cs
- RegexMatch.cs
- ZipPackage.cs
- PrintPageEvent.cs
- EntityDataSourceWrapperCollection.cs
- RegionIterator.cs
- EntityDataSource.cs
- AutomationPropertyInfo.cs
- ExtensionSimplifierMarkupObject.cs
- TemplateModeChangedEventArgs.cs
- ExternalFile.cs
- METAHEADER.cs
- _ConnectStream.cs
- SystemException.cs
- AnnotationResource.cs
- Rule.cs
- RegexMatch.cs
- OutOfProcStateClientManager.cs
- TdsValueSetter.cs
- Aggregates.cs
- SessionSwitchEventArgs.cs
- QueryableDataSourceView.cs
- UnsafeCollabNativeMethods.cs
- IsolatedStorageFilePermission.cs
- DataControlFieldCollection.cs
- ReadOnlyPropertyMetadata.cs
- CallInfo.cs
- ConfigUtil.cs
- _HeaderInfo.cs
- DuplicateWaitObjectException.cs
- CategoryGridEntry.cs
- MethodImplAttribute.cs
- PreProcessor.cs
- Process.cs
- XLinq.cs
- XmlNodeChangedEventArgs.cs
- FileRegion.cs
- ColumnResult.cs
- JsonReader.cs
- HtmlInputImage.cs
- DynamicActivityXamlReader.cs
- SqlRewriteScalarSubqueries.cs
- WindowsMenu.cs
- AsymmetricKeyExchangeDeformatter.cs
- CompiledRegexRunner.cs
- ToolStripItemEventArgs.cs
- LoadRetryHandler.cs
- PropertyState.cs
- BitArray.cs
- ConfigurationSectionGroup.cs
- SettingsSection.cs
- WSDualHttpSecurityMode.cs
- DateTimeFormat.cs
- PeerNameRecord.cs
- DynamicMethod.cs
- EndpointNameMessageFilter.cs
- OutputCacheSettings.cs
- MiniAssembly.cs
- QilLoop.cs
- Int64Storage.cs
- PanelStyle.cs
- WebPartDisplayModeCollection.cs
- x509store.cs
- DataBindingExpressionBuilder.cs
- WmlListAdapter.cs
- CompilationUtil.cs
- SecurityDescriptor.cs
- PasswordDeriveBytes.cs
- AssertValidation.cs
- SizeAnimation.cs
- SqlUserDefinedTypeAttribute.cs
- Margins.cs
- HandleCollector.cs