Esempio n. 1
0
        internal static ClientStartInfo GetClientStartInfo(
            string contractName,
            string extraInfo,
            WcfClientEndpoint endpoint)
        {
            var log = GetStartInfo <ClientStartInfo>(extraInfo);

            log.ContractName   = contractName;
            log.ClientTypeName = GetClientTypeName();
            log.WcfEndpoint    = endpoint;
            return(log);
        }
Esempio n. 2
0
        private static ChannelFactory <T> CreateChannelFactory <T>(WcfClientEndpoint endpoint)
        {
            if (endpoint == null)
            {
                throw new Exception("Can not locate any client endpoint, please check metadata config!");
            }

            var binding = ConfigHelper.CreateBinding(endpoint.EndpointBindingType, endpoint.EndpointBindingXml);

            if (binding is NetNamedPipeBinding)
            {
                endpoint.EndpointAddress = "localhost";
            }
            var address = ConfigHelper.CreateAddress(endpoint.EndpointProtocol, endpoint.EndpointAddress, endpoint.EndpointPort, endpoint.EndpointName);
            var factory = new ChannelFactory <T>(binding, address);

            factory.Endpoint.Behaviors.Add(new MessageInspectorEndpointBehavior());
            if (!string.IsNullOrEmpty(endpoint.EndpointBehaviorXml))
            {
                AddEndpointBehavior(factory, endpoint.EndpointBehaviorXml);
            }
            return(factory);
        }