//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ namespace System.ServiceModel.Activities.Configuration { using System.Configuration; using System.ServiceModel.Configuration; using System.ServiceModel.Activities.Description; public sealed class WorkflowUnhandledExceptionElement : BehaviorExtensionElement { ConfigurationPropertyCollection properties; const string action = "action"; public WorkflowUnhandledExceptionElement() { } [ConfigurationProperty(action, DefaultValue = WorkflowUnhandledExceptionBehavior.defaultAction)] [ServiceModelActivitiesEnumValidator(typeof(WorkflowUnhandledExceptionActionHelper))] public WorkflowUnhandledExceptionAction Action { get { return (WorkflowUnhandledExceptionAction)base[action]; } set { base[action] = value; } } protected internal override object CreateBehavior() { return new WorkflowUnhandledExceptionBehavior() { Action = this.Action }; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Configuration", "Configuration102:ConfigurationPropertyAttributeRule", MessageId = "System.ServiceModel.Activities.Configuration.WorkflowUnhandledExceptionElement.BehaviorType", Justification = "Not a configurable property; a property that had to be overridden from abstract parent class")] public override Type BehaviorType { get { return typeof(WorkflowUnhandledExceptionBehavior); } } protected override ConfigurationPropertyCollection Properties { get { if (this.properties == null) { ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection(); properties.Add(new ConfigurationProperty(action, typeof(WorkflowUnhandledExceptionAction), WorkflowUnhandledExceptionBehavior.defaultAction, null, new ServiceModelActivitiesEnumValidator(typeof(WorkflowUnhandledExceptionActionHelper)), System.Configuration.ConfigurationPropertyOptions.None)); this.properties = properties; } return this.properties; } } } }