namespace System.ServiceModel.Activities.Configuration { using System.Configuration; using System.Diagnostics.CodeAnalysis; using System.ServiceModel.Configuration; using System.ServiceModel.Activities.Description; using System.Runtime; [Fx.Tag.XamlVisible(false)] public class WorkflowInstanceManagementElement : BehaviorExtensionElement { const string authorizedWindowsGroup = "authorizedWindowsGroup"; ConfigurationPropertyCollection properties; public WorkflowInstanceManagementElement() { } [SuppressMessage( FxCop.Category.Configuration, FxCop.Rule.ConfigurationPropertyAttributeRule, Justification = "This property only overrides the base property.")] public override Type BehaviorType { get { return typeof(WorkflowInstanceManagementBehavior); } } [ConfigurationProperty( authorizedWindowsGroup, IsRequired = false)] [StringValidator(MinLength = 0)] public string AuthorizedWindowsGroup { get { return (string)base[authorizedWindowsGroup]; } set { base[authorizedWindowsGroup] = value; } } protected internal override object CreateBehavior() { string authorizedWindowsGroup; if (!string.IsNullOrEmpty(this.AuthorizedWindowsGroup)) { authorizedWindowsGroup = this.AuthorizedWindowsGroup; } else { authorizedWindowsGroup = WorkflowInstanceManagementBehavior.GetDefaultBuiltinAdministratorsGroup(); } WorkflowInstanceManagementBehavior workflowInstanceManagementBehavior = new WorkflowInstanceManagementBehavior { WindowsGroup = authorizedWindowsGroup }; return workflowInstanceManagementBehavior; } protected override ConfigurationPropertyCollection Properties { get { if (this.properties == null) { ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection(); properties.Add(new ConfigurationProperty(authorizedWindowsGroup, typeof(System.String), string.Empty, null, new System.Configuration.StringValidator(0, int.MaxValue, null), System.Configuration.ConfigurationPropertyOptions.None)); this.properties = properties; } return this.properties; } } } }