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
- NativeMethodsCLR.cs
- DefaultCommandExtensionCallback.cs
- WebWorkflowRole.cs
- CheckBoxFlatAdapter.cs
- DataGridViewRowStateChangedEventArgs.cs
- EventHandlerList.cs
- PathGeometry.cs
- XmlSchemaSimpleTypeUnion.cs
- ConsumerConnectionPoint.cs
- SqlException.cs
- RestHandler.cs
- BaseParaClient.cs
- CapabilitiesSection.cs
- UInt64Storage.cs
- PolyQuadraticBezierSegment.cs
- Int32Animation.cs
- ReservationCollection.cs
- CodeGenerator.cs
- GridViewPageEventArgs.cs
- OleAutBinder.cs
- Decimal.cs
- TreeNodeCollection.cs
- ObfuscationAttribute.cs
- TextEndOfSegment.cs
- ControlBindingsCollection.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- ProcessModule.cs
- XmlSchemaSimpleTypeList.cs
- ExceptionUtil.cs
- SatelliteContractVersionAttribute.cs
- NumericUpDownAccelerationCollection.cs
- WebPartConnection.cs
- ThousandthOfEmRealDoubles.cs
- diagnosticsswitches.cs
- WorkflowCommandExtensionItem.cs
- ServiceAppDomainAssociationProvider.cs
- DBCSCodePageEncoding.cs
- ExceptionWrapper.cs
- DesignerEditorPartChrome.cs
- MediaContext.cs
- ToolZone.cs
- AspCompat.cs
- WindowsListViewScroll.cs
- srgsitem.cs
- ConnectorEditor.cs
- CapabilitiesState.cs
- BulletedListEventArgs.cs
- NavigatorOutput.cs
- InteropBitmapSource.cs
- HttpListenerRequest.cs
- SpeakCompletedEventArgs.cs
- PiiTraceSource.cs
- PropertyValueUIItem.cs
- UpdateManifestForBrowserApplication.cs
- ClientConfigurationSystem.cs
- EnumConverter.cs
- EdmConstants.cs
- FontNamesConverter.cs
- StringUtil.cs
- ThicknessKeyFrameCollection.cs
- XPathParser.cs
- HttpModuleActionCollection.cs
- DynamicRendererThreadManager.cs
- SchemaRegistration.cs
- COAUTHIDENTITY.cs
- SimpleColumnProvider.cs
- SessionStateModule.cs
- XmlWriterSettings.cs
- ProfileGroupSettingsCollection.cs
- ParserStreamGeometryContext.cs
- ActivityInstanceMap.cs
- EntitySet.cs
- ValidatedControlConverter.cs
- WebPartManager.cs
- Constants.cs
- InnerItemCollectionView.cs
- SatelliteContractVersionAttribute.cs
- DataRow.cs
- MasterPageBuildProvider.cs
- TemporaryBitmapFile.cs
- XmlEncodedRawTextWriter.cs
- ApplyImportsAction.cs
- PageSettings.cs
- Vector3D.cs
- DynamicUpdateCommand.cs
- FormView.cs
- CursorInteropHelper.cs
- Utils.cs
- DbUpdateCommandTree.cs
- SelectionItemPattern.cs
- MatcherBuilder.cs
- BuildProvider.cs
- SqlCharStream.cs
- PropertyRecord.cs
- XmlStreamStore.cs
- ChannelFactoryRefCache.cs
- EntityWrapper.cs
- FixedStringLookup.cs
- UserPreferenceChangedEventArgs.cs
- ConfigurationPropertyAttribute.cs