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
- WebPartConnectionsConnectVerb.cs
- ConnectionStringSettings.cs
- PersonalizableTypeEntry.cs
- SqlMethodTransformer.cs
- SynchronousReceiveElement.cs
- ProxyGenerator.cs
- DataRowView.cs
- ProjectedSlot.cs
- ZipPackage.cs
- Process.cs
- UpdateRecord.cs
- TreeIterators.cs
- TTSEvent.cs
- SqlConnectionFactory.cs
- LogicalMethodInfo.cs
- DecimalConstantAttribute.cs
- VerificationAttribute.cs
- SystemDiagnosticsSection.cs
- TimeoutConverter.cs
- StorageScalarPropertyMapping.cs
- Vector.cs
- _DomainName.cs
- ClientTargetSection.cs
- SqlVersion.cs
- PathFigureCollection.cs
- NativeMethods.cs
- JsonXmlDataContract.cs
- ScopelessEnumAttribute.cs
- AssemblyGen.cs
- URLString.cs
- DeviceSpecificDesigner.cs
- DataSourceXmlTextReader.cs
- RoleGroup.cs
- SqlExpressionNullability.cs
- CompilerTypeWithParams.cs
- Variable.cs
- COAUTHIDENTITY.cs
- FontNameConverter.cs
- OleDbError.cs
- TextEditorContextMenu.cs
- metadatamappinghashervisitor.cs
- TimeSpanSecondsConverter.cs
- ClientCultureInfo.cs
- NameValuePair.cs
- ConfigurationProperty.cs
- ColumnHeader.cs
- ThicknessKeyFrameCollection.cs
- ThreadStartException.cs
- DataServiceHostWrapper.cs
- SoapHeaderException.cs
- Lease.cs
- HttpServerVarsCollection.cs
- DefaultValidator.cs
- MenuItem.cs
- _AutoWebProxyScriptHelper.cs
- Completion.cs
- XmlSchemaResource.cs
- TabControlAutomationPeer.cs
- IndentedWriter.cs
- QilUnary.cs
- ScriptingWebServicesSectionGroup.cs
- SharedConnectionListener.cs
- FormClosedEvent.cs
- DataMember.cs
- XPathSingletonIterator.cs
- BindableAttribute.cs
- baseaxisquery.cs
- OutputCacheSection.cs
- UpdatePanelControlTrigger.cs
- MetadataItemSerializer.cs
- CodeTypeDeclaration.cs
- TypedTableBase.cs
- CombinedGeometry.cs
- DocumentReferenceCollection.cs
- TPLETWProvider.cs
- HtmlTableRowCollection.cs
- IntSecurity.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- TypeToken.cs
- XmlSchemaParticle.cs
- FlowchartDesignerCommands.cs
- InsufficientMemoryException.cs
- ListDataHelper.cs
- SQLInt64.cs
- MailHeaderInfo.cs
- GridLengthConverter.cs
- dbenumerator.cs
- HebrewNumber.cs
- AnimationLayer.cs
- MailAddress.cs
- ChangeTracker.cs
- ConfigurationElement.cs
- ToolStripItemRenderEventArgs.cs
- CommandManager.cs
- WorkBatch.cs
- ListSourceHelper.cs
- LockedAssemblyCache.cs
- VarRefManager.cs
- XmlDictionaryWriter.cs
- IfJoinedCondition.cs