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
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- UserNamePasswordServiceCredential.cs
- CommandConverter.cs
- TracingConnectionInitiator.cs
- ListMarkerSourceInfo.cs
- Resources.Designer.cs
- StyleBamlRecordReader.cs
- CustomErrorsSection.cs
- PermissionToken.cs
- GridViewUpdateEventArgs.cs
- XmlSecureResolver.cs
- HttpListenerPrefixCollection.cs
- DeliveryStrategy.cs
- BindingOperations.cs
- Model3DGroup.cs
- OperationContractAttribute.cs
- VoiceObjectToken.cs
- FieldToken.cs
- AutomationProperty.cs
- RoutingBehavior.cs
- UserControlParser.cs
- WeakRefEnumerator.cs
- PropertySegmentSerializationProvider.cs
- BitmapData.cs
- ToolboxDataAttribute.cs
- PositiveTimeSpanValidatorAttribute.cs
- Shape.cs
- EnvironmentPermission.cs
- Events.cs
- Application.cs
- DataGridViewRowPrePaintEventArgs.cs
- BrowserInteropHelper.cs
- AttachmentCollection.cs
- ParsedAttributeCollection.cs
- BinaryWriter.cs
- PolicyLevel.cs
- SqlInternalConnectionTds.cs
- CodeTryCatchFinallyStatement.cs
- XmlWhitespace.cs
- Interlocked.cs
- InputReport.cs
- ThaiBuddhistCalendar.cs
- LoginUtil.cs
- SchemaContext.cs
- Pen.cs
- TargetConverter.cs
- FontEmbeddingManager.cs
- DictionaryEntry.cs
- SBCSCodePageEncoding.cs
- SqlRowUpdatedEvent.cs
- Viewport3DAutomationPeer.cs
- SoapEnumAttribute.cs
- SettingsContext.cs
- MarshalByRefObject.cs
- DbProviderFactory.cs
- NativeMethods.cs
- SerialPort.cs
- WebPartConnectionsDisconnectVerb.cs
- HostingEnvironment.cs
- ExtendedPropertiesHandler.cs
- OracleBFile.cs
- ExpressionBuilder.cs
- ListMarkerLine.cs
- JoinCqlBlock.cs
- FileCodeGroup.cs
- PeerNameRecordCollection.cs
- ByteStack.cs
- OperationAbortedException.cs
- DescendantQuery.cs
- SqlConnectionHelper.cs
- ErrorWrapper.cs
- CopyAction.cs
- NullRuntimeConfig.cs
- RootProfilePropertySettingsCollection.cs
- ArithmeticException.cs
- ExpressionWriter.cs
- Style.cs
- ToolBarButton.cs
- DayRenderEvent.cs
- ClockGroup.cs
- Rect3DValueSerializer.cs
- FrameworkName.cs
- TransformerTypeCollection.cs
- RepeaterDesigner.cs
- SymLanguageType.cs
- _NetworkingPerfCounters.cs
- UserPreferenceChangingEventArgs.cs
- DataChangedEventManager.cs
- MeasurementDCInfo.cs
- FrugalMap.cs
- ConsoleCancelEventArgs.cs
- ItemMap.cs
- DrawingGroup.cs
- UnionExpr.cs
- MessageAction.cs
- TableParaClient.cs
- AssemblySettingAttributes.cs
- BitmapEffectDrawingContent.cs
- DesignColumnCollection.cs
- NotSupportedException.cs