75 lines
3.3 KiB
C#
75 lines
3.3 KiB
C#
|
//------------------------------------------------------------------------------
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
namespace System.ServiceModel.Activities.Configuration
|
||
|
{
|
||
|
using System.ComponentModel;
|
||
|
using System.Configuration;
|
||
|
using System.Globalization;
|
||
|
using System.Runtime;
|
||
|
using System.ServiceModel.Activities.Description;
|
||
|
using System.ServiceModel.Configuration;
|
||
|
|
||
|
public sealed class WorkflowIdleElement : BehaviorExtensionElement
|
||
|
{
|
||
|
ConfigurationPropertyCollection properties;
|
||
|
const string TimeToPersistString = "timeToPersist";
|
||
|
const string TimeToUnloadString = "timeToUnload";
|
||
|
|
||
|
public WorkflowIdleElement()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
[ConfigurationProperty(TimeToPersistString, DefaultValue = WorkflowIdleBehavior.defaultTimeToPersistString)]
|
||
|
[TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
|
||
|
[ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanZero)]
|
||
|
public TimeSpan TimeToPersist
|
||
|
{
|
||
|
get { return (TimeSpan)base[TimeToPersistString]; }
|
||
|
set { base[TimeToPersistString] = value; }
|
||
|
}
|
||
|
|
||
|
[ConfigurationProperty(TimeToUnloadString, DefaultValue = WorkflowIdleBehavior.defaultTimeToUnloadString)]
|
||
|
[TypeConverter(typeof(TimeSpanOrInfiniteConverter))]
|
||
|
[ServiceModelTimeSpanValidator(MinValueString = ConfigurationStrings.TimeSpanZero)]
|
||
|
public TimeSpan TimeToUnload
|
||
|
{
|
||
|
get { return (TimeSpan)base[TimeToUnloadString]; }
|
||
|
set { base[TimeToUnloadString] = value; }
|
||
|
}
|
||
|
|
||
|
protected internal override object CreateBehavior()
|
||
|
{
|
||
|
return new WorkflowIdleBehavior()
|
||
|
{ TimeToPersist = this.TimeToPersist, TimeToUnload = this.TimeToUnload };
|
||
|
}
|
||
|
|
||
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Configuration", "Configuration102:ConfigurationPropertyAttributeRule", MessageId = "System.ServiceModel.Activities.Configuration.WorkflowIdleElement.BehaviorType", Justification = "Not a configurable property; a property that had to be overridden from abstract parent class")]
|
||
|
public override Type BehaviorType
|
||
|
{
|
||
|
get { return typeof(WorkflowIdleBehavior); }
|
||
|
}
|
||
|
|
||
|
protected override ConfigurationPropertyCollection Properties
|
||
|
{
|
||
|
get
|
||
|
{
|
||
|
if (this.properties == null)
|
||
|
{
|
||
|
ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();
|
||
|
properties.Add(new ConfigurationProperty(TimeToPersistString, typeof(TimeSpan), TimeSpan.MaxValue, new TimeSpanOrInfiniteConverter(), new TimeSpanOrInfiniteValidator(TimeSpan.Zero, TimeSpan.MaxValue), ConfigurationPropertyOptions.None));
|
||
|
properties.Add(new ConfigurationProperty(TimeToUnloadString, typeof(TimeSpan), TimeSpan.Parse(WorkflowIdleBehavior.defaultTimeToUnloadString, CultureInfo.InvariantCulture), new TimeSpanOrInfiniteConverter(), new TimeSpanOrInfiniteValidator(TimeSpan.Zero, TimeSpan.MaxValue), ConfigurationPropertyOptions.None));
|
||
|
this.properties = properties;
|
||
|
}
|
||
|
return this.properties;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|