Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Net / System / Net / Configuration / SocketElement.cs / 1305376 / SocketElement.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net.Configuration
{
using System;
using System.Configuration;
using System.Net.Sockets;
using System.Reflection;
using System.Security.Permissions;
public sealed class SocketElement : ConfigurationElement
{
public SocketElement()
{
this.properties.Add(this.alwaysUseCompletionPortsForAccept);
this.properties.Add(this.alwaysUseCompletionPortsForConnect);
this.properties.Add(this.ipProtectionLevel);
}
protected override void PostDeserialize()
{
// Perf optimization. If the configuration is coming from machine.config
// It is safe and we don't need to check for permissions.
if (EvaluationContext.IsMachineLevel)
return;
try {
ExceptionHelper.UnrestrictedSocketPermission.Demand();
} catch (Exception exception) {
throw new ConfigurationErrorsException(
SR.GetString(SR.net_config_element_permission,
ConfigurationStrings.Socket),
exception);
}
}
[ConfigurationProperty(ConfigurationStrings.AlwaysUseCompletionPortsForAccept, DefaultValue = false)]
public bool AlwaysUseCompletionPortsForAccept
{
get { return (bool)this[this.alwaysUseCompletionPortsForAccept]; }
set { this[this.alwaysUseCompletionPortsForAccept] = value; }
}
[ConfigurationProperty(ConfigurationStrings.AlwaysUseCompletionPortsForConnect, DefaultValue = false)]
public bool AlwaysUseCompletionPortsForConnect
{
get { return (bool)this[this.alwaysUseCompletionPortsForConnect]; }
set { this[this.alwaysUseCompletionPortsForConnect] = value; }
}
[ConfigurationProperty(ConfigurationStrings.IPProtectionLevel, DefaultValue = IPProtectionLevel.Unspecified)]
public IPProtectionLevel IPProtectionLevel
{
get { return (IPProtectionLevel)this[this.ipProtectionLevel]; }
set { this[this.ipProtectionLevel] = value; }
}
protected override ConfigurationPropertyCollection Properties
{
get
{
return this.properties;
}
}
ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
readonly ConfigurationProperty alwaysUseCompletionPortsForConnect =
new ConfigurationProperty(ConfigurationStrings.AlwaysUseCompletionPortsForConnect, typeof(bool), false,
ConfigurationPropertyOptions.None);
readonly ConfigurationProperty alwaysUseCompletionPortsForAccept =
new ConfigurationProperty(ConfigurationStrings.AlwaysUseCompletionPortsForAccept, typeof(bool), false,
ConfigurationPropertyOptions.None);
readonly ConfigurationProperty ipProtectionLevel =
new ConfigurationProperty(ConfigurationStrings.IPProtectionLevel, typeof(IPProtectionLevel),
IPProtectionLevel.Unspecified, ConfigurationPropertyOptions.None);
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Net.Configuration
{
using System;
using System.Configuration;
using System.Net.Sockets;
using System.Reflection;
using System.Security.Permissions;
public sealed class SocketElement : ConfigurationElement
{
public SocketElement()
{
this.properties.Add(this.alwaysUseCompletionPortsForAccept);
this.properties.Add(this.alwaysUseCompletionPortsForConnect);
this.properties.Add(this.ipProtectionLevel);
}
protected override void PostDeserialize()
{
// Perf optimization. If the configuration is coming from machine.config
// It is safe and we don't need to check for permissions.
if (EvaluationContext.IsMachineLevel)
return;
try {
ExceptionHelper.UnrestrictedSocketPermission.Demand();
} catch (Exception exception) {
throw new ConfigurationErrorsException(
SR.GetString(SR.net_config_element_permission,
ConfigurationStrings.Socket),
exception);
}
}
[ConfigurationProperty(ConfigurationStrings.AlwaysUseCompletionPortsForAccept, DefaultValue = false)]
public bool AlwaysUseCompletionPortsForAccept
{
get { return (bool)this[this.alwaysUseCompletionPortsForAccept]; }
set { this[this.alwaysUseCompletionPortsForAccept] = value; }
}
[ConfigurationProperty(ConfigurationStrings.AlwaysUseCompletionPortsForConnect, DefaultValue = false)]
public bool AlwaysUseCompletionPortsForConnect
{
get { return (bool)this[this.alwaysUseCompletionPortsForConnect]; }
set { this[this.alwaysUseCompletionPortsForConnect] = value; }
}
[ConfigurationProperty(ConfigurationStrings.IPProtectionLevel, DefaultValue = IPProtectionLevel.Unspecified)]
public IPProtectionLevel IPProtectionLevel
{
get { return (IPProtectionLevel)this[this.ipProtectionLevel]; }
set { this[this.ipProtectionLevel] = value; }
}
protected override ConfigurationPropertyCollection Properties
{
get
{
return this.properties;
}
}
ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
readonly ConfigurationProperty alwaysUseCompletionPortsForConnect =
new ConfigurationProperty(ConfigurationStrings.AlwaysUseCompletionPortsForConnect, typeof(bool), false,
ConfigurationPropertyOptions.None);
readonly ConfigurationProperty alwaysUseCompletionPortsForAccept =
new ConfigurationProperty(ConfigurationStrings.AlwaysUseCompletionPortsForAccept, typeof(bool), false,
ConfigurationPropertyOptions.None);
readonly ConfigurationProperty ipProtectionLevel =
new ConfigurationProperty(ConfigurationStrings.IPProtectionLevel, typeof(IPProtectionLevel),
IPProtectionLevel.Unspecified, ConfigurationPropertyOptions.None);
}
}
// 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
- DataGridSortingEventArgs.cs
- FunctionNode.cs
- InvokeCompletedEventArgs.cs
- RenderingEventArgs.cs
- OutputCacheSettingsSection.cs
- RoleServiceManager.cs
- ValidatedControlConverter.cs
- StorageEntityContainerMapping.cs
- TraceSwitch.cs
- StructuredTypeInfo.cs
- ExceptionValidationRule.cs
- SimpleFieldTemplateUserControl.cs
- PageStatePersister.cs
- ThrowOnMultipleAssignment.cs
- InternalDispatchObject.cs
- ContextMenuService.cs
- TextServicesContext.cs
- Point4D.cs
- SqlDataSourceCommandEventArgs.cs
- SQlBooleanStorage.cs
- SqlUtils.cs
- EventEntry.cs
- ServiceBuildProvider.cs
- ChannelTokenTypeConverter.cs
- ToolTipAutomationPeer.cs
- AsymmetricSecurityProtocol.cs
- AsymmetricKeyExchangeDeformatter.cs
- PointCollection.cs
- NavigationPropertySingletonExpression.cs
- MatchingStyle.cs
- AffineTransform3D.cs
- fixedPageContentExtractor.cs
- CompilerCollection.cs
- ParameterBinding.cs
- SHA256Managed.cs
- SliderAutomationPeer.cs
- DynamicPropertyHolder.cs
- PasswordDeriveBytes.cs
- Transform3D.cs
- ResourceReferenceExpression.cs
- Popup.cs
- SqlTypeConverter.cs
- TypeSource.cs
- FlagsAttribute.cs
- ContextDataSource.cs
- Query.cs
- QilChoice.cs
- SafeFileMappingHandle.cs
- Attribute.cs
- IdentitySection.cs
- SqlXmlStorage.cs
- ServiceOperationParameter.cs
- FtpWebRequest.cs
- FlowchartDesigner.Helpers.cs
- TaskFormBase.cs
- ViewStateChangedEventArgs.cs
- Figure.cs
- SignatureResourcePool.cs
- DNS.cs
- OracleConnectionString.cs
- AssertSection.cs
- XDRSchema.cs
- OdbcTransaction.cs
- XmlILModule.cs
- ObjectCache.cs
- ConfigXmlAttribute.cs
- HttpConfigurationSystem.cs
- ExpandSegment.cs
- ReadingWritingEntityEventArgs.cs
- ColorMatrix.cs
- figurelengthconverter.cs
- SimpleParser.cs
- SafeReversePInvokeHandle.cs
- UpdateEventArgs.cs
- PopupRootAutomationPeer.cs
- ToolBarTray.cs
- Control.cs
- EndPoint.cs
- RSAOAEPKeyExchangeFormatter.cs
- UpdateExpressionVisitor.cs
- IPHostEntry.cs
- PropertyRef.cs
- BinaryParser.cs
- ContentControl.cs
- TypeBuilderInstantiation.cs
- LogSwitch.cs
- SerializationInfoEnumerator.cs
- SmtpException.cs
- ThreadStateException.cs
- DataGridViewColumnHeaderCell.cs
- MissingSatelliteAssemblyException.cs
- MemoryStream.cs
- DetailsViewCommandEventArgs.cs
- Point.cs
- RowSpanVector.cs
- VBCodeProvider.cs
- ObjectListCommandsPage.cs
- TemplateKeyConverter.cs
- AttachmentCollection.cs
- XmlRawWriter.cs