NetPipeSection.cs 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. //-----------------------------------------------------------------------------
  2. // Copyright (c) Microsoft Corporation. All rights reserved.
  3. //-----------------------------------------------------------------------------
  4. namespace System.ServiceModel.Activation.Configuration
  5. {
  6. using System;
  7. using System.Configuration;
  8. using System.ServiceModel.Channels;
  9. using System.ServiceModel.Configuration;
  10. public sealed partial class NetPipeSection : ConfigurationSection
  11. {
  12. PropertyInformationCollection propertyInfo;
  13. public NetPipeSection()
  14. : base()
  15. {
  16. propertyInfo = this.ElementInformation.Properties;
  17. }
  18. [ConfigurationProperty(ConfigurationStrings.AllowAccounts)]
  19. public SecurityIdentifierElementCollection AllowAccounts
  20. {
  21. get { return (SecurityIdentifierElementCollection)base[ConfigurationStrings.AllowAccounts]; }
  22. }
  23. static internal NetPipeSection GetSection()
  24. {
  25. NetPipeSection retval = (NetPipeSection)ConfigurationManager.GetSection(ConfigurationStrings.NetPipeSectionPath);
  26. if (retval == null)
  27. {
  28. retval = new NetPipeSection();
  29. }
  30. return retval;
  31. }
  32. protected override void InitializeDefault()
  33. {
  34. this.AllowAccounts.SetDefaultIdentifiers();
  35. }
  36. [ConfigurationProperty(ConfigurationStrings.MaxPendingConnections, DefaultValue = ListenerConstants.DefaultMaxPendingConnections)]
  37. [IntegerValidator(MinValue = 0)]
  38. public int MaxPendingConnections
  39. {
  40. get { return (int)base[ConfigurationStrings.MaxPendingConnections]; }
  41. set { base[ConfigurationStrings.MaxPendingConnections] = value; }
  42. }
  43. [ConfigurationProperty(ConfigurationStrings.MaxPendingAccepts, DefaultValue = ListenerConstants.DefaultMaxPendingAccepts)]
  44. [IntegerValidator(MinValue = 0)]
  45. public int MaxPendingAccepts
  46. {
  47. get
  48. {
  49. int maxPendingAccepts = (int)base[ConfigurationStrings.MaxPendingAccepts];
  50. if (maxPendingAccepts != ListenerConstants.DefaultMaxPendingAccepts)
  51. {
  52. // if the user changed the default, return user's value
  53. return maxPendingAccepts;
  54. }
  55. else
  56. {
  57. // otherwise return 2 * transport default, since SMSvcHost defaults are global
  58. return 2 * ConnectionOrientedTransportDefaults.GetMaxPendingAccepts();
  59. }
  60. }
  61. set { base[ConfigurationStrings.MaxPendingAccepts] = value; }
  62. }
  63. [ConfigurationProperty(ConfigurationStrings.ReceiveTimeout, DefaultValue = ListenerConstants.DefaultReceiveTimeoutString)]
  64. [System.ComponentModel.TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
  65. [System.ServiceModel.Configuration.ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanZero)]
  66. public TimeSpan ReceiveTimeout
  67. {
  68. get { return (TimeSpan)base[ConfigurationStrings.ReceiveTimeout]; }
  69. set { base[ConfigurationStrings.ReceiveTimeout] = value; }
  70. }
  71. }
  72. }