我正在通过一个简单的示例使用 MassTransit,但我不知道我做错了什么,因为我没有收到正确的数据。我有一个简单的 asp.net-mvc 应用程序,在 HomeController 中有以下代码
public class TweetCreatedCommand : Command
{
public readonly string Message;
public readonly DateTime Timestamp;
public readonly Guid TweetId;
public readonly string Who;
public TweetCreatedCommand(Guid tweetId, string message, DateTime timeStamp, string who)
{
TweetId = tweetId;
Message = message;
Timestamp = timeStamp;
Who = who;
}
}
public ActionResult Index()
{
TweetCreatedCommand data;
Bus.Initialize(sbc =>
{
sbc.UseMsmq();
sbc.VerifyMsmqConfiguration();
sbc.UseMulticastSubscriptionClient();
sbc.ReceiveFrom("msmq://localhost/test_queue");
sbc.Subscribe(subs =>
{
subs.Handler<TweetCreatedCommand>(msg => data = new TweetCreatedCommand(msg.TweetId, msg.Message,msg.Timestamp,msg.Who));
});
});
Bus.Instance.Publish(new TweetCreatedCommand(Guid.NewGuid(),"foo!",DateTime.Now,"CDA"));
ViewData.Model = data;
return View();
}
如果我调试这段代码,我可以看到 TweetCreatedCommand 是如何发布的,并且 MSMQ 队列中的数据正常,但是当处理程序接收到数据时:TweetCreatedCommand.TweetId 是:00000000-0000-0000-0000-000000000000 应该是其他东西 TweetCreatedCommand.Message 是空的,它应该是“foo!” TweetCreatedCommand.TimeStamp 是 01/01/01 谁为空,应该是“CDA”
怎么了??
任何帮助,将不胜感激