File: System\ServiceModel\Activation\NamedPipeHostedTransportConfiguration.cs
Project: ndp\cdf\src\WCF\System.ServiceModel.Activation\System.ServiceModel.Activation.csproj (System.ServiceModel.Activation)
//----------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//----------------------------------------------------------------------------
 
namespace System.ServiceModel.Activation
{
    using System.Collections.Generic;
    using System.ServiceModel;
    using System.ServiceModel.Channels;
    using System.Diagnostics;
 
    sealed class NamedPipeHostedTransportConfiguration : HostedTransportConfigurationBase
    {
        HostedNamedPipeTransportManager uniqueManager;
 
        public NamedPipeHostedTransportConfiguration()
            : base(Uri.UriSchemeNetPipe)
        {
            string[] bindings = HostedTransportConfigurationManager.MetabaseSettings.GetBindings(Uri.UriSchemeNetPipe);
            for (int i = 0; i < bindings.Length; i++)
            {
                BaseUriWithWildcard listenAddress = BaseUriWithWildcard.CreateHostedPipeUri(bindings[i], HostingEnvironmentWrapper.ApplicationVirtualPath);
                if (i == 0)
                {
                    Debug.Print("NamedPipeHostedTransportConfiguration.ctor() Creating the unique NamedPipeTransportManager with ListenUri:" + listenAddress.BaseAddress);
                    uniqueManager = new HostedNamedPipeTransportManager(listenAddress);
                }
 
                this.ListenAddresses.Add(listenAddress);
                Debug.Print("Registering the unique NamedPipeTransportManager with ListenUri:" + listenAddress.BaseAddress);
                NamedPipeChannelListener.StaticTransportManagerTable.RegisterUri(listenAddress.BaseAddress, listenAddress.HostNameComparisonMode, uniqueManager);
            }
        }
 
        internal NamedPipeTransportManager TransportManager { get { return uniqueManager; } }
    }
}