EndpointDiscoveryElement.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Discovery / System / ServiceModel / Discovery / Configuration / EndpointDiscoveryElement.cs / 1305376 / EndpointDiscoveryElement.cs

                            //---------------------------------------------------------------- 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//---------------------------------------------------------------

namespace System.ServiceModel.Discovery.Configuration 
{
    using System.Configuration; 
    using System.Diagnostics.CodeAnalysis; 
    using System.Runtime;
    using System.ServiceModel.Configuration; 
    using System.Xml.Linq;
    using System.Xml;

    public sealed class EndpointDiscoveryElement : BehaviorExtensionElement 
    {
        ConfigurationPropertyCollection properties; 
 
        public EndpointDiscoveryElement()
        { 
        }

        [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(EndpointDiscoveryBehavior); 
            }
        }

        [ConfigurationProperty(ConfigurationStrings.Enabled, DefaultValue = true)] 
        public bool Enabled
        { 
            get 
            {
                return (bool)base[ConfigurationStrings.Enabled]; 
            }

            set
            { 
                base[ConfigurationStrings.Enabled] = value;
            } 
        } 

        [ConfigurationProperty(ConfigurationStrings.Types)] 
        [SuppressMessage(
            FxCop.Category.Configuration,
            FxCop.Rule.ConfigurationPropertyNameRule,
            Justification = "The configuration name for this element is 'types'.")] 
        public ContractTypeNameElementCollection ContractTypeNames
        { 
            get 
            {
                return (ContractTypeNameElementCollection)base[ConfigurationStrings.Types]; 
            }
        }

        [ConfigurationProperty(ConfigurationStrings.Scopes)] 
        public ScopeElementCollection Scopes
        { 
            get 
            {
                return (ScopeElementCollection)base[ConfigurationStrings.Scopes]; 
            }
        }

        [ConfigurationProperty(ConfigurationStrings.Extensions)] 
        public XmlElementElementCollection Extensions
        { 
            get 
            {
                return (XmlElementElementCollection)base[ConfigurationStrings.Extensions]; 
            }
        }

        protected override ConfigurationPropertyCollection Properties 
        {
            get 
            { 
                if (this.properties == null)
                { 
                    ConfigurationPropertyCollection properties = new ConfigurationPropertyCollection();

                    properties.Add(
                        new ConfigurationProperty( 
                        ConfigurationStrings.Enabled,
                        typeof(Boolean), 
                        true, 
                        null,
                        null, 
                        ConfigurationPropertyOptions.None));

                    properties.Add(
                        new ConfigurationProperty( 
                        ConfigurationStrings.Types,
                        typeof(ContractTypeNameElementCollection), 
                        null, 
                        null,
                        null, 
                        ConfigurationPropertyOptions.None));

                    properties.Add(
                        new ConfigurationProperty( 
                        ConfigurationStrings.Scopes,
                        typeof(ScopeElementCollection), 
                        null, 
                        null,
                        null, 
                        ConfigurationPropertyOptions.None));

                    properties.Add(
                        new ConfigurationProperty( 
                        ConfigurationStrings.Extensions,
                        typeof(XmlElementElementCollection), 
                        null, 
                        null,
                        null, 
                        ConfigurationPropertyOptions.None));

                    this.properties = properties;
                } 
                return this.properties;
            } 
        } 

        protected internal override object CreateBehavior() 
        {
            EndpointDiscoveryBehavior behavior = new EndpointDiscoveryBehavior();
            behavior.Enabled = Enabled;
 
            if ((Scopes != null) && (Scopes.Count > 0))
            { 
                foreach (ScopeElement scopeElement in Scopes) 
                {
                    behavior.Scopes.Add(scopeElement.Scope); 
                }
            }

            if (ContractTypeNames != null) 
            {
                foreach (ContractTypeNameElement contractTypeNameElement in ContractTypeNames) 
                { 
                    behavior.ContractTypeNames.Add(
                        new XmlQualifiedName(contractTypeNameElement.Name, contractTypeNameElement.Namespace)); 
                }
            }

            if ((Extensions != null) && (Extensions.Count > 0)) 
            {
                foreach (XmlElementElement xmlElement in Extensions) 
                { 
                    behavior.Extensions.Add(XElement.Parse(xmlElement.XmlElement.OuterXml));
                } 
            }

            return behavior;
        } 
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK