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
- DynamicDocumentPaginator.cs
- Subset.cs
- DelayedRegex.cs
- DoubleAnimationUsingPath.cs
- DataKey.cs
- Ipv6Element.cs
- TextSelectionHighlightLayer.cs
- InputProviderSite.cs
- TokenBasedSetEnumerator.cs
- ResourceIDHelper.cs
- DictionaryTraceRecord.cs
- Int64KeyFrameCollection.cs
- FontUnit.cs
- PageThemeBuildProvider.cs
- DoubleCollectionConverter.cs
- ObjectDataSourceStatusEventArgs.cs
- MatrixKeyFrameCollection.cs
- ToolStripItemTextRenderEventArgs.cs
- HandlerFactoryWrapper.cs
- DbException.cs
- DbParameterCollectionHelper.cs
- ServiceHttpHandlerFactory.cs
- PerformanceCounterLib.cs
- BooleanStorage.cs
- CompressionTransform.cs
- DynamicResourceExtensionConverter.cs
- Camera.cs
- XPathDocument.cs
- OracleTimeSpan.cs
- ShutDownListener.cs
- SQLDecimal.cs
- X509IssuerSerialKeyIdentifierClause.cs
- LayoutTableCell.cs
- TouchesOverProperty.cs
- XPathSingletonIterator.cs
- CompareValidator.cs
- ReflectPropertyDescriptor.cs
- DecimalConstantAttribute.cs
- EntityParameterCollection.cs
- httpstaticobjectscollection.cs
- IDReferencePropertyAttribute.cs
- MenuBindingsEditor.cs
- FtpCachePolicyElement.cs
- HtmlToClrEventProxy.cs
- CopyAttributesAction.cs
- XPathNodeHelper.cs
- RoutedCommand.cs
- SafeNativeMethods.cs
- ObjectRef.cs
- SqlDataSourceQuery.cs
- DoubleAnimationUsingKeyFrames.cs
- SiteMembershipCondition.cs
- CapiHashAlgorithm.cs
- NavigationPropertyEmitter.cs
- IncrementalCompileAnalyzer.cs
- NameTable.cs
- GlyphCache.cs
- IndexerReference.cs
- XmlSchemaAppInfo.cs
- LogLogRecord.cs
- GradientStop.cs
- ManifestBasedResourceGroveler.cs
- XmlSchemaCompilationSettings.cs
- StylusPointProperty.cs
- WebPartDisplayModeCollection.cs
- BehaviorEditorPart.cs
- WizardPanel.cs
- FixedPageProcessor.cs
- ListView.cs
- AnnotationMap.cs
- TreeNodeStyle.cs
- ConfigXmlComment.cs
- SharedPersonalizationStateInfo.cs
- XpsPartBase.cs
- ListItemCollection.cs
- InkCanvasSelection.cs
- TaiwanLunisolarCalendar.cs
- ToolbarAUtomationPeer.cs
- OleDbDataReader.cs
- WSHttpBinding.cs
- InkSerializer.cs
- DataObjectPastingEventArgs.cs
- PropertyTabAttribute.cs
- PowerStatus.cs
- securitymgrsite.cs
- ListViewItemEventArgs.cs
- RecordManager.cs
- TraversalRequest.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- SafeRightsManagementQueryHandle.cs
- Html32TextWriter.cs
- HtmlInputRadioButton.cs
- PageSettings.cs
- Common.cs
- MouseDevice.cs
- WindowsFormsHostPropertyMap.cs
- HwndSourceKeyboardInputSite.cs
- DynamicMethod.cs
- Guid.cs
- ScriptingScriptResourceHandlerSection.cs