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
- SoapInteropTypes.cs
- SmiMetaDataProperty.cs
- CollectionViewProxy.cs
- Annotation.cs
- Panel.cs
- URLAttribute.cs
- DesignerListAdapter.cs
- DiscreteKeyFrames.cs
- RuleEngine.cs
- TracingConnectionInitiator.cs
- BitmapEffectOutputConnector.cs
- Win32.cs
- CaseStatementProjectedSlot.cs
- hebrewshape.cs
- DesignerActionUI.cs
- DataTemplate.cs
- CounterNameConverter.cs
- DockPattern.cs
- ResourceReferenceExpression.cs
- storepermission.cs
- SafeRegistryKey.cs
- ServerValidateEventArgs.cs
- TypeDescriptionProviderAttribute.cs
- TextBox.cs
- EncryptedKey.cs
- ProcessInfo.cs
- QilDataSource.cs
- Vector3D.cs
- CodeChecksumPragma.cs
- ExeContext.cs
- OuterGlowBitmapEffect.cs
- QilLoop.cs
- EventData.cs
- DataGridViewTextBoxEditingControl.cs
- CompilationPass2Task.cs
- WorkflowDefinitionContext.cs
- InsufficientMemoryException.cs
- WpfPayload.cs
- DropDownList.cs
- NumberSubstitution.cs
- ViewCellSlot.cs
- WeakReadOnlyCollection.cs
- XmlNotation.cs
- SQLConvert.cs
- HostnameComparisonMode.cs
- TableLayoutCellPaintEventArgs.cs
- UnauthorizedWebPart.cs
- DBNull.cs
- RubberbandSelector.cs
- Action.cs
- CancelEventArgs.cs
- ObjectResult.cs
- WizardPanelChangingEventArgs.cs
- SerializableAttribute.cs
- MatchingStyle.cs
- GridViewSelectEventArgs.cs
- ServerValidateEventArgs.cs
- ScriptingJsonSerializationSection.cs
- PersistenceMetadataNamespace.cs
- ItemsPresenter.cs
- TableDesigner.cs
- ApplicationSecurityInfo.cs
- SqlDuplicator.cs
- MappingMetadataHelper.cs
- Int32Collection.cs
- MorphHelpers.cs
- ClusterRegistryConfigurationProvider.cs
- figurelengthconverter.cs
- ListBindingConverter.cs
- DataError.cs
- MediaEntryAttribute.cs
- GC.cs
- ContainerControl.cs
- ScriptResourceAttribute.cs
- MessageBuilder.cs
- DocumentScope.cs
- GroupByExpressionRewriter.cs
- Calendar.cs
- XmlSchemaAnnotation.cs
- DelegateSerializationHolder.cs
- DataSourceCache.cs
- WorkflowWebService.cs
- CompilationUnit.cs
- SqlDataSourceQueryEditor.cs
- PrintingPermission.cs
- WebEvents.cs
- DataGridViewCellValidatingEventArgs.cs
- StrongTypingException.cs
- PrintDocument.cs
- IncrementalHitTester.cs
- WebPartHelpVerb.cs
- BeginCreateSecurityTokenRequest.cs
- EntityKey.cs
- VideoDrawing.cs
- DataGridViewTopLeftHeaderCell.cs
- MessageSmuggler.cs
- InfoCardBinaryReader.cs
- AssemblyContextControlItem.cs
- XmlBinaryWriterSession.cs
- baseaxisquery.cs