示例#1
0
        public void Init()
        {
            bus = new Core.Bus();

            bus.Initialize(succubus => succubus.WithLoopback(clear:true));

            bus.ReplyTo<BasicRequest, BasicResponse>(req => new BasicResponse { Message = "FROM SERVER: " + req.Message });
            bus.ReplyTo<ChildRequest, ChildBase>(req => new ChildResponse1 { Message = "FROM SERVER: " + req.Message });

            // bus.Defer<BasicRequest, BasicResponse>();
            // bus.Defer<ChildRequest, ChildBase>();
        }
示例#2
0
        public void DoubleDeferrence()
        {
            Core.Bus bus2 = new Core.Bus();
            bus2.Initialize(
                config => config.WithZeroMQ()
                );

            Thread.Sleep(500);

            bus2.Defer<BasicRequest, BasicResponse>();

            var id = bus.Call(new BasicRequest() { Message = "Double deferrence" });

            bus.Pickup<BasicRequest, BasicResponse>(id, (req, res) =>
            {
                Assert.AreEqual("FROM SERVER: " + req.Message, res.Message);
            });

            bus2.Pickup<BasicRequest, BasicResponse>(id, (request, response) =>
            {
                Assert.AreEqual("FROM SERVER: " + request.Message, response.Message);
            });
        }