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
- PassportPrincipal.cs
- SecurityTokenRequirement.cs
- FileSecurity.cs
- WebPartZoneBaseDesigner.cs
- NavigationWindowAutomationPeer.cs
- _BufferOffsetSize.cs
- XhtmlBasicValidatorAdapter.cs
- SQLByte.cs
- HorizontalAlignConverter.cs
- InputEventArgs.cs
- RsaSecurityKey.cs
- PolygonHotSpot.cs
- CanonicalizationDriver.cs
- OdbcUtils.cs
- ContractMapping.cs
- ISFTagAndGuidCache.cs
- SingleKeyFrameCollection.cs
- ProtectedConfigurationSection.cs
- Win32.cs
- UnionExpr.cs
- GridSplitterAutomationPeer.cs
- unitconverter.cs
- ItemDragEvent.cs
- Nullable.cs
- LayoutManager.cs
- CapabilitiesPattern.cs
- ScrollBarRenderer.cs
- ButtonBase.cs
- TextFormatterContext.cs
- PointCollection.cs
- SystemWebSectionGroup.cs
- TemplateBaseAction.cs
- WebPartConnectionsConnectVerb.cs
- WSSecurityOneDotZeroSendSecurityHeader.cs
- TextRangeProviderWrapper.cs
- SamlSubjectStatement.cs
- SqlWebEventProvider.cs
- ComponentResourceKeyConverter.cs
- XmlAttributeAttribute.cs
- XamlReader.cs
- BamlRecordHelper.cs
- TextStore.cs
- WmlObjectListAdapter.cs
- OrderPreservingSpoolingTask.cs
- HitTestWithPointDrawingContextWalker.cs
- MulticastOption.cs
- Margins.cs
- RegistryDataKey.cs
- ReferenceEqualityComparer.cs
- WhitespaceRule.cs
- WorkflowRuntimeServiceElementCollection.cs
- Select.cs
- VirtualDirectoryMappingCollection.cs
- BinaryMethodMessage.cs
- LoadedOrUnloadedOperation.cs
- BamlLocalizationDictionary.cs
- followingsibling.cs
- SecurityTokenTypes.cs
- SqlVisitor.cs
- AppSettings.cs
- SID.cs
- BaseAsyncResult.cs
- FamilyMapCollection.cs
- CustomTrackingRecord.cs
- WebPartHelpVerb.cs
- InvalidProgramException.cs
- EditorPartCollection.cs
- MultiBinding.cs
- InkPresenter.cs
- ProjectionRewriter.cs
- DataGridViewColumnCollectionDialog.cs
- AuthorizationRule.cs
- OrderByLifter.cs
- activationcontext.cs
- Models.cs
- EmptyTextWriter.cs
- TextProperties.cs
- PrefixHandle.cs
- AnonymousIdentificationModule.cs
- RedirectionProxy.cs
- NativeMethodsCLR.cs
- BindingGraph.cs
- DesigntimeLicenseContextSerializer.cs
- XamlPoint3DCollectionSerializer.cs
- PerformanceCounterLib.cs
- XmlSchemaSequence.cs
- FileUpload.cs
- QueryRewriter.cs
- Math.cs
- AttachedPropertyMethodSelector.cs
- Message.cs
- AdapterDictionary.cs
- ReadOnlyDataSource.cs
- SignedXml.cs
- EventListenerClientSide.cs
- DesignColumn.cs
- BreakRecordTable.cs
- CompilerScope.Storage.cs
- ProxyElement.cs
- IPEndPointCollection.cs