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
- PropertyGroupDescription.cs
- ThicknessKeyFrameCollection.cs
- SqlSupersetValidator.cs
- ContainerParaClient.cs
- ScrollPattern.cs
- AnimatedTypeHelpers.cs
- ExpressionBuilderContext.cs
- Light.cs
- HwndTarget.cs
- TagPrefixInfo.cs
- ConfigurationLocationCollection.cs
- SessionEndingEventArgs.cs
- TextBoxRenderer.cs
- AsyncDataRequest.cs
- UpdatePanelControlTrigger.cs
- CompModHelpers.cs
- HttpClientCertificate.cs
- TableCellCollection.cs
- ColumnProvider.cs
- EntityContainerRelationshipSet.cs
- CompensationTokenData.cs
- ObjectListTitleAttribute.cs
- PackagingUtilities.cs
- WebPartHelpVerb.cs
- InternalCache.cs
- EasingFunctionBase.cs
- RNGCryptoServiceProvider.cs
- AccessedThroughPropertyAttribute.cs
- _ProxyChain.cs
- ToolStripPanelDesigner.cs
- XsltOutput.cs
- FrugalList.cs
- PersistChildrenAttribute.cs
- TextDecorationUnitValidation.cs
- DataObjectSettingDataEventArgs.cs
- XmlChoiceIdentifierAttribute.cs
- XmlArrayItemAttributes.cs
- XmlReaderSettings.cs
- EdmScalarPropertyAttribute.cs
- ImportContext.cs
- ConfigsHelper.cs
- RemoveStoryboard.cs
- XmlSchemaAnnotation.cs
- CoTaskMemUnicodeSafeHandle.cs
- Point3DAnimation.cs
- UidManager.cs
- shaperfactoryquerycacheentry.cs
- Single.cs
- DependencyPropertyHelper.cs
- UIElement.cs
- GenericTypeParameterConverter.cs
- ItemsControl.cs
- RotateTransform3D.cs
- RegexParser.cs
- ListItemsCollectionEditor.cs
- MarshalDirectiveException.cs
- HttpGetServerProtocol.cs
- StringAnimationUsingKeyFrames.cs
- MultiViewDesigner.cs
- ExpressionWriter.cs
- PopupEventArgs.cs
- documentsequencetextview.cs
- StringCollection.cs
- Socket.cs
- VectorValueSerializer.cs
- ConstructorBuilder.cs
- DesignerSerializationVisibilityAttribute.cs
- DataGridToolTip.cs
- EventMetadata.cs
- WebPartVerbsEventArgs.cs
- FrameworkContentElement.cs
- CompilerScope.Storage.cs
- SharedUtils.cs
- DataServiceQueryException.cs
- FixedSOMTextRun.cs
- AuthenticationManager.cs
- TraceXPathNavigator.cs
- SettingsPropertyValue.cs
- _LocalDataStoreMgr.cs
- VirtualDirectoryMappingCollection.cs
- ParameterCollection.cs
- CalculatedColumn.cs
- CommandField.cs
- SafeSerializationManager.cs
- IntSecurity.cs
- XmlAttributeCollection.cs
- HtmlCommandAdapter.cs
- DataGridPagerStyle.cs
- FilterQueryOptionExpression.cs
- SqlUdtInfo.cs
- ImageList.cs
- Aggregates.cs
- EncryptedData.cs
- UnicodeEncoding.cs
- StrongNameSignatureInformation.cs
- SmiEventStream.cs
- ListItemConverter.cs
- StrongNamePublicKeyBlob.cs
- OpCopier.cs
- RegexMatch.cs