RoutingEndpointTrait.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.Routing / System / ServiceModel / Routing / RoutingEndpointTrait.cs / 1305376 / RoutingEndpointTrait.cs

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

namespace System.ServiceModel.Routing 
{
    using System.ServiceModel.Description; 
 
    sealed class RoutingEndpointTrait
    { 
        public RoutingEndpointTrait(Type routerContract, ServiceEndpoint endpoint, OperationContext operationContext)
        {
            if (routerContract == typeof(IDuplexSessionRouter))
            { 
                IDuplexRouterCallback callbackSession = operationContext.GetCallbackChannel();
                this.CallbackInstance = callbackSession; 
            } 
            this.Endpoint = endpoint;
            this.RouterContract = routerContract; 
        }

        public IDuplexRouterCallback CallbackInstance
        { 
            get;
            private set; 
        } 

        public ServiceEndpoint Endpoint 
        {
            get;
            private set;
        } 

        public Type RouterContract 
        { 
            get;
            private set; 
        }

        public override bool Equals(object obj)
        { 
            RoutingEndpointTrait other = obj as RoutingEndpointTrait;
            if (other == null) 
            { 
                return false;
            } 
            if (!object.ReferenceEquals(this.Endpoint, other.Endpoint))
            {
                return false;
            } 
            if (this.RouterContract != other.RouterContract)
            { 
                return false; 
            }
            if (!object.ReferenceEquals(this.CallbackInstance, other.CallbackInstance)) 
            {
                return false;
            }
            return true; 
        }
 
        public override int GetHashCode() 
        {
            int num = 0; 
            num ^= this.Endpoint.GetHashCode();
            num ^= this.RouterContract.GetHashCode();
            if (this.CallbackInstance != null)
            { 
                num ^= this.CallbackInstance.GetHashCode();
            } 
            return num; 
        }
 
        public override string ToString()
        {
            return this.Endpoint.Name + ";" + this.Endpoint.Binding.Name + ";" + this.Endpoint.Address.Uri.ToString();
        } 
    }
} 

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