Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ // // 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
- DataSpaceManager.cs
- EditorZoneDesigner.cs
- RealizedColumnsBlock.cs
- Polyline.cs
- EditorZone.cs
- TextRunTypographyProperties.cs
- FormattedTextSymbols.cs
- DockingAttribute.cs
- DataTableMapping.cs
- PopupControlService.cs
- ImageMetadata.cs
- IIS7WorkerRequest.cs
- RuleRefElement.cs
- SQLInt64Storage.cs
- DiagnosticEventProvider.cs
- ThreadSafeList.cs
- CapabilitiesRule.cs
- FileVersionInfo.cs
- DbTransaction.cs
- MSG.cs
- ZipIOCentralDirectoryFileHeader.cs
- TrustLevelCollection.cs
- ImageMapEventArgs.cs
- EntityConnection.cs
- EpmSyndicationContentSerializer.cs
- InitializationEventAttribute.cs
- HttpRequestCacheValidator.cs
- WebPartZone.cs
- ProfileGroupSettingsCollection.cs
- CompressEmulationStream.cs
- DataListItemCollection.cs
- ManagementClass.cs
- AmbiguousMatchException.cs
- ErrorFormatter.cs
- ClonableStack.cs
- PixelFormat.cs
- ThousandthOfEmRealPoints.cs
- StackOverflowException.cs
- DrawingContextDrawingContextWalker.cs
- DebugTracing.cs
- GridViewActionList.cs
- ArrayElementGridEntry.cs
- SizeChangedEventArgs.cs
- ScrollViewerAutomationPeer.cs
- KeyedCollection.cs
- CategoryGridEntry.cs
- CodeDomSerializer.cs
- EditorZoneAutoFormat.cs
- CodeVariableDeclarationStatement.cs
- SQLDateTime.cs
- VectorConverter.cs
- NameScope.cs
- GeneratedContractType.cs
- GridSplitter.cs
- RenameRuleObjectDialog.Designer.cs
- GeometryCollection.cs
- DataGridViewHitTestInfo.cs
- NavigationPropertyEmitter.cs
- SHA512Managed.cs
- DataSvcMapFile.cs
- XamlParser.cs
- XmlToDatasetMap.cs
- HttpCapabilitiesSectionHandler.cs
- CancellationTokenSource.cs
- StyleXamlParser.cs
- InputBindingCollection.cs
- MissingMemberException.cs
- ConnectAlgorithms.cs
- Triangle.cs
- RecognizedWordUnit.cs
- TextEffectResolver.cs
- PageParserFilter.cs
- CharUnicodeInfo.cs
- BindingOperations.cs
- Point4D.cs
- AutoGeneratedField.cs
- MaskInputRejectedEventArgs.cs
- Facet.cs
- ByteAnimation.cs
- ping.cs
- QuaternionRotation3D.cs
- X509Certificate2.cs
- GridViewCancelEditEventArgs.cs
- PathFigure.cs
- Configuration.cs
- WinInet.cs
- ProfileInfo.cs
- ConnectionInterfaceCollection.cs
- ValueTypeFixupInfo.cs
- InvalidCommandTreeException.cs
- HMACSHA512.cs
- BidPrivateBase.cs
- NameValueFileSectionHandler.cs
- CodeParameterDeclarationExpressionCollection.cs
- MenuEventArgs.cs
- MetadataItemCollectionFactory.cs
- PartitionResolver.cs
- SingleSelectRootGridEntry.cs
- WorkflowRuntimeSection.cs
- CallbackCorrelationInitializer.cs