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
- IRCollection.cs
- FusionWrap.cs
- SizeChangedInfo.cs
- MD5CryptoServiceProvider.cs
- GroupJoinQueryOperator.cs
- TabletCollection.cs
- ManagementBaseObject.cs
- StringAnimationUsingKeyFrames.cs
- UriExt.cs
- SoapClientMessage.cs
- ParagraphResult.cs
- StrokeNodeOperations.cs
- BindingContext.cs
- XamlInt32CollectionSerializer.cs
- CacheRequest.cs
- StatusBarItem.cs
- DataRowExtensions.cs
- ObjectDataSourceMethodEventArgs.cs
- WCFServiceClientProxyGenerator.cs
- ImageSource.cs
- WinEventQueueItem.cs
- FontStyles.cs
- HyperLinkStyle.cs
- TextProviderWrapper.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- BoundsDrawingContextWalker.cs
- XmlSchemaSimpleTypeRestriction.cs
- CommandConverter.cs
- HashSet.cs
- EraserBehavior.cs
- AttributeSetAction.cs
- ClientSettingsSection.cs
- ExtractCollection.cs
- WindowsToolbar.cs
- StreamWriter.cs
- DirectoryInfo.cs
- CompiledQuery.cs
- SQLString.cs
- RadioButtonFlatAdapter.cs
- PassportAuthenticationEventArgs.cs
- BaseValidator.cs
- XmlSchemaAnnotated.cs
- SemanticBasicElement.cs
- TableChangeProcessor.cs
- RoutedEventValueSerializer.cs
- CodeMethodReturnStatement.cs
- BadImageFormatException.cs
- MonthCalendar.cs
- ContextQuery.cs
- MissingManifestResourceException.cs
- DataGridItemAutomationPeer.cs
- CommonObjectSecurity.cs
- DefaultSettingsSection.cs
- XomlCompilerHelpers.cs
- UpdatePanelTrigger.cs
- FileAuthorizationModule.cs
- List.cs
- XmlSerializationWriter.cs
- ControlValuePropertyAttribute.cs
- QueryAccessibilityHelpEvent.cs
- WinEventHandler.cs
- TypeBuilderInstantiation.cs
- ErrorStyle.cs
- SafeFindHandle.cs
- DataGridViewRowHeaderCell.cs
- AppDomainProtocolHandler.cs
- _NetworkingPerfCounters.cs
- LayoutTable.cs
- EventProviderTraceListener.cs
- SRGSCompiler.cs
- InstanceLockLostException.cs
- PerformanceCounterCategory.cs
- ToolBarButtonClickEvent.cs
- FlowPosition.cs
- NavigationProgressEventArgs.cs
- Blend.cs
- SQLInt64Storage.cs
- ValueType.cs
- SliderAutomationPeer.cs
- TableRowCollection.cs
- LayoutDump.cs
- XmlSchemaSimpleContentRestriction.cs
- HttpVersion.cs
- AttributedMetaModel.cs
- CounterCreationData.cs
- AppDomainGrammarProxy.cs
- WebPartMenu.cs
- MenuItem.cs
- KeyValuePairs.cs
- CodeTypeReferenceExpression.cs
- DataGridCell.cs
- TextEditorDragDrop.cs
- DbTypeMap.cs
- HiddenField.cs
- Transform.cs
- OpenTypeLayout.cs
- StreamResourceInfo.cs
- PropertyCollection.cs
- NewExpression.cs
- SurrogateEncoder.cs