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
- EncoderBestFitFallback.cs
- GridViewColumnHeaderAutomationPeer.cs
- EntityCommandDefinition.cs
- SqlCacheDependency.cs
- WebPartConnectionCollection.cs
- FlagsAttribute.cs
- GcHandle.cs
- DefaultParameterValueAttribute.cs
- SerializerWriterEventHandlers.cs
- SrgsRulesCollection.cs
- WebSysDisplayNameAttribute.cs
- XhtmlBasicPageAdapter.cs
- PingReply.cs
- RetrieveVirtualItemEventArgs.cs
- ReliableSession.cs
- WorkerRequest.cs
- XmlComment.cs
- IsolatedStorage.cs
- ToolStripControlHost.cs
- MouseBinding.cs
- DecoderReplacementFallback.cs
- ResourceReader.cs
- WebPartConnectionsCloseVerb.cs
- CapacityStreamGeometryContext.cs
- WebPartZone.cs
- DefaultPerformanceCounters.cs
- FixedNode.cs
- ProtocolViolationException.cs
- ContentPresenter.cs
- SoapClientMessage.cs
- GeneralEndpointIdentity.cs
- FixedSOMPage.cs
- BitmapEffectInput.cs
- WmfPlaceableFileHeader.cs
- InProcStateClientManager.cs
- RegexCapture.cs
- Stream.cs
- InputLanguage.cs
- TransformPatternIdentifiers.cs
- RegexWriter.cs
- XmlSchemaSimpleTypeRestriction.cs
- StyleCollectionEditor.cs
- SerializerWriterEventHandlers.cs
- DBDataPermission.cs
- ParameterInfo.cs
- NameSpaceExtractor.cs
- LoginDesigner.cs
- PaperSource.cs
- DataControlButton.cs
- ObjectCacheSettings.cs
- ArrayList.cs
- PathSegment.cs
- ShaderRenderModeValidation.cs
- ObjectStateFormatter.cs
- Mouse.cs
- AppDomainCompilerProxy.cs
- TargetException.cs
- ContextMenuAutomationPeer.cs
- AssemblyInfo.cs
- ValidatingReaderNodeData.cs
- bindurihelper.cs
- Odbc32.cs
- CompilerScopeManager.cs
- PriorityChain.cs
- XmlNode.cs
- CrossSiteScriptingValidation.cs
- Misc.cs
- ScopedKnownTypes.cs
- ActivityBindForm.Designer.cs
- XmlSchemaCompilationSettings.cs
- Hex.cs
- XmlAutoDetectWriter.cs
- MultiBindingExpression.cs
- Accessors.cs
- ToolBarPanel.cs
- WebPartEventArgs.cs
- DocumentCollection.cs
- ScriptRegistrationManager.cs
- ManualResetEvent.cs
- SerializationBinder.cs
- BinaryReader.cs
- _Events.cs
- HashCodeCombiner.cs
- SafeNativeMethods.cs
- DoubleLinkListEnumerator.cs
- TextBoxView.cs
- AsyncResult.cs
- CompressStream.cs
- RegexCompilationInfo.cs
- Win32.cs
- HtmlControl.cs
- DynamicValidator.cs
- XmlSchemaComplexContent.cs
- DbProviderSpecificTypePropertyAttribute.cs
- _NegoState.cs
- SQLBoolean.cs
- CapabilitiesAssignment.cs
- ItemCheckedEvent.cs
- StylusPointPropertyId.cs
- CodeDirectiveCollection.cs