Endpoint.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.Activities / System / ServiceModel / Endpoint.cs / 1305376 / Endpoint.cs

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

namespace System.ServiceModel 
{
    using System; 
    using System.Collections.ObjectModel; 
    using System.ComponentModel;
    using System.Runtime; 
    using System.ServiceModel.Activities;
    using System.ServiceModel.Channels;
    using System.ServiceModel.XamlIntegration;
    using System.Xml.Linq; 
    using SR2 = System.ServiceModel.Activities.SR;
 
    public class Endpoint 
    {
        Collection headers; 

        [DefaultValue(null)]
        public string BehaviorConfigurationName
        { 
            get;
            set; 
        } 

        [Fx.Tag.KnownXamlExternal] 
        [DefaultValue(null)]
        public Binding Binding
        {
            get; 
            set;
        } 
 
        [DefaultValue(null)]
        [TypeConverter(typeof(ServiceXNameTypeConverter))] 
        public XName ServiceContractName
        {
            get;
            set; 
        }
 
        // concrete AddressHeader descendants aren't currently XAMLable, they are not initialized until runtime 
        // If user adds an address header, this object will fail to xamlize.
        [Fx.Tag.KnownXamlExternal] 
        public Collection Headers
        {
            get
            { 
                if (this.headers == null)
                { 
                    this.headers = new Collection(); 
                }
                return this.headers; 
            }
        }

        [DefaultValue(null)] 
        [TypeConverter(typeof(EndpointIdentityConverter))]
        public EndpointIdentity Identity 
        { 
            get;
            set; 
        }

        [DefaultValue(null)]
        public Uri ListenUri 
        {
            get; 
            set; 
        }
 
        [DefaultValue(null)]
        public string Name
        {
            get; 
            set;
        } 
 
        [DefaultValue(null)]
        public Uri AddressUri 
        {
            get;
            set;
        } 

        public EndpointAddress GetAddress() 
        { 
            return GetAddress(null);
        } 

        public EndpointAddress GetAddress(ServiceHostBase host)
        {
            if (this.AddressUri == null) 
            {
                string endpointName = ContractValidationHelper.GetErrorMessageEndpointName(this.Name); 
                string contractName = ContractValidationHelper.GetErrorMessageEndpointServiceContractName(this.ServiceContractName); 
                throw FxTrace.Exception.AsError(new InvalidOperationException(
                    SR2.MissingUriInEndpoint(endpointName, contractName))); 
            }

            Uri address = null;
            if (this.AddressUri.IsAbsoluteUri) 
            {
                address = this.AddressUri; 
            } 
            else
            { 
                if (this.Binding == null)
                {
                    string endpointName = ContractValidationHelper.GetErrorMessageEndpointName(this.Name);
                    string contractName = ContractValidationHelper.GetErrorMessageEndpointServiceContractName(this.ServiceContractName); 
                    throw FxTrace.Exception.AsError(new InvalidOperationException(
                        SR2.RelativeUriRequiresBinding(endpointName, contractName, this.AddressUri))); 
                } 
                if (host == null)
                { 
                    string endpointName = ContractValidationHelper.GetErrorMessageEndpointName(this.Name);
                    string contractName = ContractValidationHelper.GetErrorMessageEndpointServiceContractName(this.ServiceContractName);
                    throw FxTrace.Exception.AsError(new InvalidOperationException(
                        SR2.RelativeUriRequiresHost(endpointName, contractName, this.AddressUri))); 
                }
                address = host.MakeAbsoluteUri(this.AddressUri, this.Binding); 
            } 

            return new EndpointAddress(address, this.Identity, new AddressHeaderCollection(this.Headers)); 
        }
    }
}

// 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