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
- DtdParser.cs
- BlurBitmapEffect.cs
- ObjectQueryExecutionPlan.cs
- X509CertificateRecipientServiceCredential.cs
- StringReader.cs
- Baml2006Reader.cs
- PeerInvitationResponse.cs
- SafeNativeMethodsCLR.cs
- CultureInfoConverter.cs
- NameValuePermission.cs
- Application.cs
- Screen.cs
- MenuItem.cs
- SessionSwitchEventArgs.cs
- XamlSerializerUtil.cs
- DispatcherExceptionEventArgs.cs
- GenericIdentity.cs
- ElementProxy.cs
- List.cs
- UserInitiatedNavigationPermission.cs
- DataGridViewTextBoxColumn.cs
- IndexingContentUnit.cs
- SerializerDescriptor.cs
- LogEntrySerialization.cs
- DataTableCollection.cs
- CryptographicAttribute.cs
- ListInitExpression.cs
- TextLineResult.cs
- ContextMenuStrip.cs
- BaseParser.cs
- UnaryNode.cs
- ViewCellRelation.cs
- JsonCollectionDataContract.cs
- ItemsChangedEventArgs.cs
- NavigationPropertyAccessor.cs
- QilGeneratorEnv.cs
- GridViewColumnCollection.cs
- HasCopySemanticsAttribute.cs
- _KerberosClient.cs
- LayoutUtils.cs
- ListBindingHelper.cs
- XmlNodeReader.cs
- adornercollection.cs
- Span.cs
- UInt16Converter.cs
- Int16Storage.cs
- Point3DAnimation.cs
- DataStorage.cs
- DragEventArgs.cs
- ImagingCache.cs
- ServiceManager.cs
- AnnotationResourceCollection.cs
- CopyOfAction.cs
- UiaCoreProviderApi.cs
- RNGCryptoServiceProvider.cs
- DebuggerService.cs
- XmlReflectionImporter.cs
- UIPermission.cs
- GuidConverter.cs
- EmptyStringExpandableObjectConverter.cs
- MimeFormImporter.cs
- RegionInfo.cs
- FontFamilyConverter.cs
- SafeNativeMethods.cs
- Material.cs
- RegistrySecurity.cs
- DoubleKeyFrameCollection.cs
- AndAlso.cs
- ToolStripSplitStackLayout.cs
- CodeDirectiveCollection.cs
- LineUtil.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- XmlSchemaAll.cs
- ConfigurationProperty.cs
- GPPOINTF.cs
- Button.cs
- TrackBarRenderer.cs
- Pts.cs
- ArrayMergeHelper.cs
- nulltextnavigator.cs
- SqlRowUpdatedEvent.cs
- RemoteWebConfigurationHostStream.cs
- ColorContextHelper.cs
- CrossContextChannel.cs
- ColorBuilder.cs
- ResXFileRef.cs
- XmlAggregates.cs
- ProtocolViolationException.cs
- DoubleAnimationUsingPath.cs
- ConstantSlot.cs
- SimpleBitVector32.cs
- ListControlConvertEventArgs.cs
- DataSourceCache.cs
- SoapInteropTypes.cs
- TextViewSelectionProcessor.cs
- VisualBrush.cs
- ProfileGroupSettingsCollection.cs
- BitmapEffect.cs
- IncrementalReadDecoders.cs
- ProviderMetadata.cs