//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------ namespace System.ServiceModel.Activities.Configuration { using System; using System.Runtime; using System.Configuration; using System.ServiceModel.Configuration; using System.Diagnostics.CodeAnalysis; using System.ServiceModel.Activities.Description; using System.ServiceModel.Activities.Tracking.Configuration; using SR2 = System.ServiceModel.Activities.SR; public class EtwTrackingBehaviorElement : BehaviorExtensionElement { ConfigurationPropertyCollection properties; const string profileNameParameter = "profileName"; public EtwTrackingBehaviorElement() { } [SuppressMessage(FxCop.Category.Configuration, FxCop.Rule.ConfigurationPropertyAttributeRule, Justification = "This property is defined by the base class to determine the type of the behavior.")] public override Type BehaviorType { get { return typeof(EtwTrackingBehavior); } } [ConfigurationProperty(profileNameParameter, DefaultValue = "", Options = ConfigurationPropertyOptions.IsKey)] [StringValidator(MinLength = 0)] [SuppressMessage(FxCop.Category.Configuration, FxCop.Rule.ConfigurationValidatorAttributeRule, MessageId = "System.ServiceModel.Activities.Configuration.EtwTrackingBehaviorElement.ProfileName", Justification = "StringValidator validates minimal size")] public string ProfileName { get { return (string)base[profileNameParameter]; } set { base[profileNameParameter] = value; } } protected override ConfigurationPropertyCollection Properties { get { if (this.properties == null) { ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection(); properties.Add(new ConfigurationProperty(profileNameParameter, typeof(System.String), string.Empty, null, new System.Configuration.StringValidator(0, 2147483647, null), System.Configuration.ConfigurationPropertyOptions.IsKey)); this.properties = properties; } return this.properties; } } protected internal override object CreateBehavior() { EtwTrackingBehavior trackingBehavior = new EtwTrackingBehavior { ProfileName = this.ProfileName }; return trackingBehavior; } } }