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
- BridgeDataRecord.cs
- HttpResponse.cs
- StyleTypedPropertyAttribute.cs
- RawStylusSystemGestureInputReport.cs
- IntAverageAggregationOperator.cs
- CanonicalizationDriver.cs
- HijriCalendar.cs
- SamlSubject.cs
- X509SubjectKeyIdentifierClause.cs
- EDesignUtil.cs
- TablePatternIdentifiers.cs
- WebSysDefaultValueAttribute.cs
- SettingsContext.cs
- ClientSession.cs
- NgenServicingAttributes.cs
- newinstructionaction.cs
- RoutedEventHandlerInfo.cs
- PointCollection.cs
- SqlConnectionStringBuilder.cs
- SqlRewriteScalarSubqueries.cs
- ServiceRouteHandler.cs
- IndexerNameAttribute.cs
- nulltextnavigator.cs
- ApplicationSecurityInfo.cs
- CommandSet.cs
- RepeaterItemEventArgs.cs
- Control.cs
- PartitionResolver.cs
- Typography.cs
- TextRunProperties.cs
- ColorIndependentAnimationStorage.cs
- BindingList.cs
- MulticastDelegate.cs
- SmiEventStream.cs
- serverconfig.cs
- CodeTypeParameterCollection.cs
- CaseInsensitiveComparer.cs
- BinaryMessageEncoder.cs
- metadatamappinghashervisitor.cs
- ScrollableControl.cs
- StructuredTypeEmitter.cs
- XmlText.cs
- UnsafeNativeMethods.cs
- IntegerFacetDescriptionElement.cs
- IPCCacheManager.cs
- XmlSortKey.cs
- TableRow.cs
- DBParameter.cs
- ConfigXmlAttribute.cs
- FileSystemWatcher.cs
- Identity.cs
- WindowsSysHeader.cs
- SignatureHelper.cs
- CompoundFileReference.cs
- XmlSchemaCollection.cs
- SecurityDocument.cs
- EmptyStringExpandableObjectConverter.cs
- MultipartContentParser.cs
- WebPartMovingEventArgs.cs
- TextTreeTextElementNode.cs
- CodeAttributeDeclaration.cs
- GeometryModel3D.cs
- XmlElementList.cs
- CommandExpr.cs
- SmtpMail.cs
- OperationResponse.cs
- DbDataSourceEnumerator.cs
- TransferRequestHandler.cs
- ByteRangeDownloader.cs
- IPipelineRuntime.cs
- Int32Animation.cs
- InputElement.cs
- ExpressionStringBuilder.cs
- InternalDispatchObject.cs
- InheritedPropertyChangedEventArgs.cs
- ListViewDesigner.cs
- RuleSettings.cs
- OptionUsage.cs
- WsiProfilesElementCollection.cs
- TreeViewImageIndexConverter.cs
- filewebresponse.cs
- PeerChannelFactory.cs
- IntSecurity.cs
- TemplateKeyConverter.cs
- Label.cs
- DataGridViewCellMouseEventArgs.cs
- SiteMapDataSourceView.cs
- FileDialog_Vista.cs
- altserialization.cs
- Misc.cs
- KeyPullup.cs
- DataControlLinkButton.cs
- StrongBox.cs
- MouseDevice.cs
- LayoutManager.cs
- Stackframe.cs
- DataTable.cs
- PageCodeDomTreeGenerator.cs
- StylusSystemGestureEventArgs.cs
- DrawingAttributesDefaultValueFactory.cs