Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / Mail / MailAddressCollection.cs / 1305376 / MailAddressCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Net.Mail { using System; using System.Collections; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Text; using System.Net.Mime; public class MailAddressCollection: Collection{ public MailAddressCollection(){ } public void Add(string addresses) { if (addresses == null) { throw new ArgumentNullException("addresses"); } if (addresses == string.Empty) { throw new ArgumentException(SR.GetString(SR.net_emptystringcall, "addresses"), "addresses"); } ParseValue(addresses); } protected override void SetItem(int index, MailAddress item){ if(item==null) { throw new ArgumentNullException("item"); } base.SetItem(index,item); } protected override void InsertItem(int index, MailAddress item){ if(item==null){ throw new ArgumentNullException("item"); } base.InsertItem(index,item); } internal void ParseValue(string addresses){ IList result = MailAddressParser.ParseMultipleAddresses(addresses); for (int i = 0; i < result.Count; i++) { this.Add(result[i]); } } public override string ToString(){ bool first = true; StringBuilder builder = new StringBuilder(); foreach (MailAddress address in this) { if (!first) { builder.Append(", "); } builder.Append(address.ToString()); first = false; } return builder.ToString();; } internal string Encode(int charsConsumed) { string encodedAddresses = string.Empty; //encode each address individually (except the first), fold and separate with a comma foreach (MailAddress address in this) { if (String.IsNullOrEmpty(encodedAddresses)) { //no need to append a comma to the first one because it may be the only one. encodedAddresses = address.Encode(charsConsumed); } else { //appending another one, append a comma to separate and then fold and add the encoded address //the charsConsumed will be 1 because only the first line needs to account for the header itself for //line length; subsequent lines have a single whitespace character because they are folded here encodedAddresses += ",\r\n " + address.Encode(1); } } return encodedAddresses; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Buffer.cs
- CellPartitioner.cs
- CustomValidator.cs
- SemanticResolver.cs
- BatchServiceHost.cs
- FreeIndexList.cs
- Thickness.cs
- TdsParserSafeHandles.cs
- BitmapFrameEncode.cs
- Stylus.cs
- AddingNewEventArgs.cs
- InvalidFilterCriteriaException.cs
- ObjectTokenCategory.cs
- ZipIOModeEnforcingStream.cs
- ComponentEditorForm.cs
- StringValueSerializer.cs
- XhtmlBasicLiteralTextAdapter.cs
- TemplateXamlTreeBuilder.cs
- GlobalProxySelection.cs
- documentsequencetextpointer.cs
- TemplatedMailWebEventProvider.cs
- DataKey.cs
- WebPartConnectionsCancelEventArgs.cs
- AssemblyInfo.cs
- XDRSchema.cs
- Zone.cs
- Crc32.cs
- JoinTreeSlot.cs
- ResourceDescriptionAttribute.cs
- UidPropertyAttribute.cs
- Reference.cs
- RawStylusInputReport.cs
- ToolStripRendererSwitcher.cs
- VScrollBar.cs
- FigureParagraph.cs
- QueryContinueDragEvent.cs
- SimpleLine.cs
- TextFindEngine.cs
- HttpRuntime.cs
- WsiProfilesElementCollection.cs
- DefaultPropertyAttribute.cs
- XmlTextReaderImpl.cs
- NameTable.cs
- DesignerCapabilities.cs
- ListViewInsertedEventArgs.cs
- QilName.cs
- AnnotationHighlightLayer.cs
- BuildProviderUtils.cs
- DataServiceQueryException.cs
- ToolStripDropTargetManager.cs
- XmlDataCollection.cs
- TraceContextRecord.cs
- KnownTypeDataContractResolver.cs
- MemoryMappedViewAccessor.cs
- WindowsUpDown.cs
- SynchronizedDispatch.cs
- CommunicationException.cs
- DataStreamFromComStream.cs
- AttributeParameterInfo.cs
- TextBox.cs
- SystemMulticastIPAddressInformation.cs
- PropertyGrid.cs
- ImageListStreamer.cs
- InputBinder.cs
- ContentFileHelper.cs
- NumberEdit.cs
- SchemaImporterExtensionsSection.cs
- FilterQuery.cs
- CurrentChangedEventManager.cs
- BlobPersonalizationState.cs
- FrameAutomationPeer.cs
- TemplateControlBuildProvider.cs
- FigureHelper.cs
- DataGridLinkButton.cs
- ProcessHostConfigUtils.cs
- HttpChannelHelpers.cs
- Internal.cs
- OleDbConnectionFactory.cs
- Wildcard.cs
- RewritingSimplifier.cs
- SecurityContextTokenValidationException.cs
- NativeMethods.cs
- Line.cs
- RMPublishingDialog.cs
- MethodSignatureGenerator.cs
- BuildResult.cs
- DataReceivedEventArgs.cs
- FieldInfo.cs
- Vertex.cs
- EntityContainerEntitySet.cs
- BindToObject.cs
- HiddenField.cs
- HwndProxyElementProvider.cs
- TextEditorLists.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- TableLayoutCellPaintEventArgs.cs
- RegexCompilationInfo.cs
- LinqDataSourceView.cs
- SymmetricAlgorithm.cs
- OutKeywords.cs