public void ServerAncClientEndpointBehavior()
        {
            var hook           = new InvokesCounterBehaviour();
            var address        = @"net.pipe://127.0.0.1/test" + this.GetType().Name + "_" + MethodBase.GetCurrentMethod().Name;
            var serv           = new Service(null);
            var host           = new NDceRpc.ServiceModel.ServiceHost(serv, new Uri[] { new Uri(address), });
            var b              = new NDceRpc.ServiceModel.NetNamedPipeBinding();
            var serverEndpoint = host.AddServiceEndpoint(typeof(IService), b, address);

            serverEndpoint.Behaviors.Add(hook);
            Assert.AreEqual(0, hook.Counter);
            host.Open();
            Assert.AreEqual(1, hook.Counter);
            var f = new NDceRpc.ServiceModel.ChannelFactory <IService>(b);

            f.Endpoint.Behaviors.Add(hook);
            Assert.AreEqual(1, hook.Counter);
            var c = f.CreateChannel(new NDceRpc.ServiceModel.EndpointAddress(address));

            Assert.AreEqual(2, hook.Counter);
            var result = c.DoWithParamsAndResult("", Guid.NewGuid());


            host.Abort();
        }
        public void ServerAncClientEndpointBehavior()
        {
            var hook = new InvokesCounterBehaviour();
            var address = @"net.pipe://127.0.0.1/test" + this.GetType().Name + "_" + MethodBase.GetCurrentMethod().Name;
            var serv = new Service(null);
            var host = new NDceRpc.ServiceModel.ServiceHost(serv, new Uri[] { new Uri(address), });
            var b = new NDceRpc.ServiceModel.NetNamedPipeBinding();
            var serverEndpoint = host.AddServiceEndpoint(typeof(IService), b, address);
            serverEndpoint.Behaviors.Add(hook);
            Assert.AreEqual(0, hook.Counter);
            host.Open();
            Assert.AreEqual(1, hook.Counter);
            var f = new NDceRpc.ServiceModel.ChannelFactory<IService>(b);
            f.Endpoint.Behaviors.Add(hook);
            Assert.AreEqual(1, hook.Counter);
            var c = f.CreateChannel(new NDceRpc.ServiceModel.EndpointAddress(address));
            Assert.AreEqual(2, hook.Counter);
            var result = c.DoWithParamsAndResult("", Guid.NewGuid());

            host.Abort();
        }
示例#3
0
        public void ServerAndClientExceptions()
        {
            var address = @"net.pipe://127.0.0.1/test" + this.GetType().Name + "_" + MethodBase.GetCurrentMethod().Name;
            var serv = new ExceptionService();
            using (var host = new NDceRpc.ServiceModel.ServiceHost(serv, new Uri[] {new Uri(address),}))
            {
                var b = new NDceRpc.ServiceModel.NetNamedPipeBinding();
                host.AddServiceEndpoint(typeof(IExceptionService), b, address);
                host.Open();
                var f = new NDceRpc.ServiceModel.ChannelFactory<IExceptionService>(b);
                var c = f.CreateChannel(new NDceRpc.ServiceModel.EndpointAddress(address));

                try
                {
                    c.DoException("message");
                }
                catch (Exception ex)
                {
                    Assert.IsInstanceOf<NDceRpc.ServiceModel.FaultException>(ex);
                }
                host.Abort();
            }
        }
示例#4
0
        public void ServerAndClientExceptions()
        {
            var address = @"net.pipe://127.0.0.1/test" + this.GetType().Name + "_" + MethodBase.GetCurrentMethod().Name;
            var serv    = new ExceptionService();

            using (var host = new NDceRpc.ServiceModel.ServiceHost(serv, new Uri[] { new Uri(address), }))
            {
                var b = new NDceRpc.ServiceModel.NetNamedPipeBinding();
                host.AddServiceEndpoint(typeof(IExceptionService), b, address);
                host.Open();
                var f = new NDceRpc.ServiceModel.ChannelFactory <IExceptionService>(b);
                var c = f.CreateChannel(new NDceRpc.ServiceModel.EndpointAddress(address));

                try
                {
                    c.DoException("message");
                }
                catch (Exception ex)
                {
                    Assert.IsInstanceOf <NDceRpc.ServiceModel.FaultException>(ex);
                }
                host.Abort();
            }
        }