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
- ISessionStateStore.cs
- DrawTreeNodeEventArgs.cs
- TreeNodeSelectionProcessor.cs
- CallSiteOps.cs
- Memoizer.cs
- ClientOptions.cs
- UserMapPath.cs
- RankException.cs
- XamlToRtfParser.cs
- InnerItemCollectionView.cs
- WebPermission.cs
- SubMenuStyleCollection.cs
- FamilyMap.cs
- DataBindEngine.cs
- FigureParagraph.cs
- DataObjectCopyingEventArgs.cs
- IisTraceListener.cs
- PolygonHotSpot.cs
- TextServicesContext.cs
- UseLicense.cs
- CompilationLock.cs
- RelationshipEndMember.cs
- RoutedEventHandlerInfo.cs
- GridItemProviderWrapper.cs
- ObjectQueryState.cs
- RootProfilePropertySettingsCollection.cs
- GradientBrush.cs
- IncrementalReadDecoders.cs
- SerializationInfoEnumerator.cs
- Tracer.cs
- HttpResponseHeader.cs
- SystemColorTracker.cs
- FamilyMapCollection.cs
- WSTransactionSection.cs
- ProfileSection.cs
- SoapSchemaExporter.cs
- FuncCompletionCallbackWrapper.cs
- SqlProfileProvider.cs
- Util.cs
- InkCanvasFeedbackAdorner.cs
- DetailsViewInsertEventArgs.cs
- WebControlAdapter.cs
- SingleKeyFrameCollection.cs
- ColumnHeader.cs
- ObjectQueryState.cs
- DataGridTablesFactory.cs
- DateTimeStorage.cs
- FullTextBreakpoint.cs
- XsltSettings.cs
- SubMenuStyleCollection.cs
- TriggerAction.cs
- DependencyObjectProvider.cs
- LoadItemsEventArgs.cs
- BaseEntityWrapper.cs
- AppDomainProtocolHandler.cs
- RightsManagementPermission.cs
- ArrayTypeMismatchException.cs
- Filter.cs
- DataGridViewRowPostPaintEventArgs.cs
- MetadataFile.cs
- DataGridViewColumnTypePicker.cs
- CharKeyFrameCollection.cs
- IdleTimeoutMonitor.cs
- ImpersonateTokenRef.cs
- TemplateControlParser.cs
- BrushConverter.cs
- WhitespaceRuleReader.cs
- WebPartVerbsEventArgs.cs
- DiscoveryProxy.cs
- SqlDependencyUtils.cs
- ILGen.cs
- SourceElementsCollection.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- CompositionTarget.cs
- TextUtf8RawTextWriter.cs
- DataSourceControlBuilder.cs
- FlowDocument.cs
- SqlAliasesReferenced.cs
- ColorPalette.cs
- Vector3DConverter.cs
- ResolveDuplexAsyncResult.cs
- ObjectQueryProvider.cs
- ObjectSecurity.cs
- DesignBindingPropertyDescriptor.cs
- BrowserInteropHelper.cs
- ReferenceTypeElement.cs
- DBSqlParserColumn.cs
- LabelTarget.cs
- TraceUtility.cs
- XmlSchemaAny.cs
- FormattedTextSymbols.cs
- DesignerSerializerAttribute.cs
- ThreadAttributes.cs
- OdbcRowUpdatingEvent.cs
- SHA256Managed.cs
- GetWinFXPath.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- UnregisterInfo.cs
- XmlWrappingWriter.cs
- documentsequencetextpointer.cs