File: System\ServiceModel\Discovery\Configuration\AnnouncementChannelEndpointElementCollection.cs
Project: ndp\cdf\src\NetFx40\System.ServiceModel.Discovery\System.ServiceModel.Discovery.csproj (System.ServiceModel.Discovery)
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//----------------------------------------------------------------
 
namespace System.ServiceModel.Discovery.Configuration
{
    using System.Configuration;
    using System.Globalization;
    using System.ServiceModel.Configuration;
 
    [ConfigurationCollection(typeof(ChannelEndpointElement), AddItemName = ConfigurationStrings.Endpoint)]
    public sealed class AnnouncementChannelEndpointElementCollection : ServiceModelConfigurationElementCollection<ChannelEndpointElement>
    {
        public AnnouncementChannelEndpointElementCollection()
        {
            this.AddElementName = ConfigurationStrings.Endpoint;
        }
 
        protected override object GetElementKey(ConfigurationElement element)
        {
            if (element == null)
            {
                throw FxTrace.Exception.ArgumentNull("element");
            }
 
            ChannelEndpointElement channelEndpointElement = (ChannelEndpointElement)element;
 
            string address = channelEndpointElement.Address == null ? "" : channelEndpointElement.Address.ToString().ToUpperInvariant();
 
            return string.Format(CultureInfo.InvariantCulture,
                "kind:{0};endpointConfiguration:{1};address:{2};bindingConfiguration:{3};binding:{4};",
                channelEndpointElement.Kind,
                channelEndpointElement.EndpointConfiguration,
                address,
                channelEndpointElement.BindingConfiguration,
                channelEndpointElement.Binding);
        }
    }
}