Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Net / System / Net / Configuration / SmtpSection.cs / 1 / SmtpSection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net.Configuration
{
using System;
using System.Configuration;
using System.ComponentModel;
using System.Globalization;
using System.Net;
using System.Net.Mail;
using System.Reflection;
using System.Threading;
public sealed class SmtpSection : ConfigurationSection
{
public SmtpSection()
{
this.properties.Add(this.deliveryMethod);
this.properties.Add(this.from);
this.properties.Add(this.network);
this.properties.Add(this.specifiedPickupDirectory);
}
[ConfigurationProperty(ConfigurationStrings.DeliveryMethod, DefaultValue = (SmtpDeliveryMethod) SmtpDeliveryMethod.Network)]
public SmtpDeliveryMethod DeliveryMethod
{
get {
return (SmtpDeliveryMethod)this[this.deliveryMethod];
}
set {
this[this.deliveryMethod] = value;
}
}
[ConfigurationProperty(ConfigurationStrings.From)]
public string From
{
get { return (string)this[this.from]; }
set { this[this.from] = value; }
}
[ConfigurationProperty(ConfigurationStrings.Network)]
public SmtpNetworkElement Network
{
get {
return (SmtpNetworkElement)this[this.network];
}
}
[ConfigurationProperty(ConfigurationStrings.SpecifiedPickupDirectory)]
public SmtpSpecifiedPickupDirectoryElement SpecifiedPickupDirectory
{
get {
return (SmtpSpecifiedPickupDirectoryElement)this[this.specifiedPickupDirectory];
}
}
protected override ConfigurationPropertyCollection Properties
{
get
{
return this.properties;
}
}
//
ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
readonly ConfigurationProperty from =
new ConfigurationProperty(ConfigurationStrings.From, typeof(string), null,
ConfigurationPropertyOptions.None);
readonly ConfigurationProperty network =
new ConfigurationProperty(ConfigurationStrings.Network, typeof(SmtpNetworkElement), null,
ConfigurationPropertyOptions.None);
readonly ConfigurationProperty specifiedPickupDirectory =
new ConfigurationProperty(ConfigurationStrings.SpecifiedPickupDirectory, typeof(SmtpSpecifiedPickupDirectoryElement), null,
ConfigurationPropertyOptions.None);
readonly ConfigurationProperty deliveryMethod =
new ConfigurationProperty(ConfigurationStrings.DeliveryMethod, typeof(SmtpDeliveryMethod), SmtpDeliveryMethod.Network, new SmtpDeliveryMethodTypeConverter(), null,
ConfigurationPropertyOptions.None);
class SmtpDeliveryMethodTypeConverter : TypeConverter {
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) {
if (sourceType == typeof(string)) {
return true;
}
return base.CanConvertFrom(context, sourceType);
}
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) {
string s = value as string;
if (s != null) {
s = s.ToLower(CultureInfo.InvariantCulture);
switch (s) {
case "network":
return SmtpDeliveryMethod.Network;
case "specifiedpickupdirectory":
return SmtpDeliveryMethod.SpecifiedPickupDirectory;
#if !FEATURE_PAL
case "pickupdirectoryfromiis":
return SmtpDeliveryMethod.PickupDirectoryFromIis;
#endif
}
}
return base.ConvertFrom(context, culture, value);
}
}
}
internal sealed class SmtpSectionInternal
{
internal SmtpSectionInternal(SmtpSection section)
{
this.deliveryMethod = section.DeliveryMethod;
this.from = section.From;
this.network = new SmtpNetworkElementInternal(section.Network);
this.specifiedPickupDirectory = new SmtpSpecifiedPickupDirectoryElementInternal(section.SpecifiedPickupDirectory);
}
internal SmtpDeliveryMethod DeliveryMethod
{
get { return this.deliveryMethod; }
}
internal SmtpNetworkElementInternal Network
{
get { return this.network; }
}
internal string From
{
get { return this.from; }
}
internal SmtpSpecifiedPickupDirectoryElementInternal SpecifiedPickupDirectory
{
get { return this.specifiedPickupDirectory; }
}
SmtpDeliveryMethod deliveryMethod;
string from = null;
SmtpNetworkElementInternal network = null;
SmtpSpecifiedPickupDirectoryElementInternal specifiedPickupDirectory = null;
internal static object ClassSyncObject
{
get
{
if (classSyncObject == null)
{
Interlocked.CompareExchange(ref classSyncObject, new object(), null);
}
return classSyncObject;
}
}
internal static SmtpSectionInternal GetSection()
{
lock (ClassSyncObject)
{
SmtpSection section = PrivilegedConfigurationManager.GetSection(ConfigurationStrings.SmtpSectionPath) as SmtpSection;
if (section == null)
return null;
return new SmtpSectionInternal(section);
}
}
private static object classSyncObject;
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TcpChannelListener.cs
- Underline.cs
- ValidationContext.cs
- WebHeaderCollection.cs
- TraceSwitch.cs
- Subtree.cs
- WindowsGrip.cs
- Options.cs
- MetaType.cs
- FilterableAttribute.cs
- LateBoundChannelParameterCollection.cs
- RelatedCurrencyManager.cs
- SmiEventSink_Default.cs
- IListConverters.cs
- PolyBezierSegment.cs
- ListViewGroupConverter.cs
- ToolboxItemFilterAttribute.cs
- BamlCollectionHolder.cs
- ObjectSelectorEditor.cs
- LinearQuaternionKeyFrame.cs
- Substitution.cs
- RevocationPoint.cs
- MailMessageEventArgs.cs
- WmfPlaceableFileHeader.cs
- GcSettings.cs
- NameValueSectionHandler.cs
- SmtpTransport.cs
- SourceLineInfo.cs
- ObjectListCommandsPage.cs
- CompilerCollection.cs
- IImplicitResourceProvider.cs
- AlignmentXValidation.cs
- DesignerRegionMouseEventArgs.cs
- HttpApplicationStateWrapper.cs
- ActivityIdHeader.cs
- GenericUriParser.cs
- PropertyPushdownHelper.cs
- StringAnimationUsingKeyFrames.cs
- MachineKey.cs
- CryptoConfig.cs
- DirectoryObjectSecurity.cs
- TimeoutValidationAttribute.cs
- Constraint.cs
- MultiBindingExpression.cs
- HttpBrowserCapabilitiesWrapper.cs
- DrawingAttributesDefaultValueFactory.cs
- RuntimeResourceSet.cs
- IndexedString.cs
- BitmapEffectGeneralTransform.cs
- figurelengthconverter.cs
- DataGridViewControlCollection.cs
- InfoCardBaseException.cs
- GeneralTransform3DGroup.cs
- ToolboxItemCollection.cs
- FontFamily.cs
- XamlReaderHelper.cs
- InstanceView.cs
- XmlToDatasetMap.cs
- FigureParaClient.cs
- SqlUserDefinedTypeAttribute.cs
- AuthenticationSection.cs
- ProtocolsConfigurationEntry.cs
- Console.cs
- ListView.cs
- HttpApplicationStateBase.cs
- DataView.cs
- BinHexEncoder.cs
- AspNetSynchronizationContext.cs
- DataRecordInfo.cs
- PeerObject.cs
- StdValidatorsAndConverters.cs
- StylusPointPropertyUnit.cs
- StrokeCollection.cs
- Guid.cs
- _StreamFramer.cs
- ResourceManager.cs
- RegexWriter.cs
- DeploymentExceptionMapper.cs
- ControlAdapter.cs
- UntypedNullExpression.cs
- WindowCollection.cs
- EntryWrittenEventArgs.cs
- GeneralTransformGroup.cs
- ResXBuildProvider.cs
- ComNativeDescriptor.cs
- XmlSchemaObjectTable.cs
- behaviorssection.cs
- IPAddressCollection.cs
- BaseConfigurationRecord.cs
- FontWeightConverter.cs
- HttpException.cs
- SequentialOutput.cs
- Matrix3D.cs
- EventItfInfo.cs
- DataColumnCollection.cs
- BrowserTree.cs
- ControlCachePolicy.cs
- ECDiffieHellman.cs
- AutomationPatternInfo.cs
- UrlParameterReader.cs