|
//-----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.ServiceModel.Activation.Configuration
{
using System;
using System.Configuration;
using System.ServiceModel.Channels;
using System.ServiceModel.Configuration;
public sealed partial class NetPipeSection : ConfigurationSection
{
PropertyInformationCollection propertyInfo;
public NetPipeSection()
: base()
{
propertyInfo = this.ElementInformation.Properties;
}
[ConfigurationProperty(ConfigurationStrings.AllowAccounts)]
public SecurityIdentifierElementCollection AllowAccounts
{
get { return (SecurityIdentifierElementCollection)base[ConfigurationStrings.AllowAccounts]; }
}
static internal NetPipeSection GetSection()
{
NetPipeSection retval = (NetPipeSection)ConfigurationManager.GetSection(ConfigurationStrings.NetPipeSectionPath);
if (retval == null)
{
retval = new NetPipeSection();
}
return retval;
}
protected override void InitializeDefault()
{
this.AllowAccounts.SetDefaultIdentifiers();
}
[ConfigurationProperty(ConfigurationStrings.MaxPendingConnections, DefaultValue = ListenerConstants.DefaultMaxPendingConnections)]
[IntegerValidator(MinValue = 0)]
public int MaxPendingConnections
{
get { return (int)base[ConfigurationStrings.MaxPendingConnections]; }
set { base[ConfigurationStrings.MaxPendingConnections] = value; }
}
[ConfigurationProperty(ConfigurationStrings.MaxPendingAccepts, DefaultValue = ListenerConstants.DefaultMaxPendingAccepts)]
[IntegerValidator(MinValue = 0)]
public int MaxPendingAccepts
{
get
{
int maxPendingAccepts = (int)base[ConfigurationStrings.MaxPendingAccepts];
if (maxPendingAccepts != ListenerConstants.DefaultMaxPendingAccepts)
{
// if the user changed the default, return user's value
return maxPendingAccepts;
}
else
{
// otherwise return 2 * transport default, since SMSvcHost defaults are global
return 2 * ConnectionOrientedTransportDefaults.GetMaxPendingAccepts();
}
}
set { base[ConfigurationStrings.MaxPendingAccepts] = value; }
}
[ConfigurationProperty(ConfigurationStrings.ReceiveTimeout, DefaultValue = ListenerConstants.DefaultReceiveTimeoutString)]
[System.ComponentModel.TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
[System.ServiceModel.Configuration.ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanZero)]
public TimeSpan ReceiveTimeout
{
get { return (TimeSpan)base[ConfigurationStrings.ReceiveTimeout]; }
set { base[ConfigurationStrings.ReceiveTimeout] = value; }
}
}
}
|