C# 将动态作为类类型的masstransit

C# 将动态作为类类型的masstransit,c#,message-queue,masstransit,C#,Message Queue,Masstransit,我已经开始学习大众运输。下面是一个简单的例子 public class YourMessage { public string Text { get; set; } } public class Program { public static void Main() { Bus.Initialize(sbc => { sbc.UseMsmq(); sbc.VerifyMsmqConfigurat

我已经开始学习大众运输。下面是一个简单的例子

public class YourMessage { public string Text { get; set; } }
public class Program
{
    public static void Main()
    {
        Bus.Initialize(sbc =>
        {
            sbc.UseMsmq();
            sbc.VerifyMsmqConfiguration();
            sbc.UseMulticastSubscriptionClient();
            sbc.ReceiveFrom("msmq://localhost/test_queue");
            sbc.Subscribe(subs=>
            {
                subs.Handler<YourMessage>(msg=>Console.WriteLine(msg.Text));
            });
        });

        Bus.Instance.Publish(new YourMessage{Text = "Hi"});
    }
}

如何使用masstransit实现上述目标

底线是否,您不能使用MassTransit有意义地订阅动态类型。我希望我们不会支持这种行为

通常,消息是之间的静态契约,序列化到消费对象中的唯一内容是订阅类型中标识的属性


如果你需要的话,你可以考虑使用,它可能支持这样做。我们不建议你走这条路,因为它充满了危险。根据经验,在有效载荷方面尽可能少的惊喜会使生命支持系统变得更好。

因此,我应该使用类类型:)当然,非常感谢您的输入
 while (isConsuming)
            {
                try
                {
                    if (!mqchannel.IsOpen)
                        throw new Exception("Channel is closed");

                    BasicDeliverEventArgs e = (BasicDeliverEventArgs)consumer.Queue.Dequeue();
                    IBasicProperties props = e.BasicProperties;

                    //Adds the message to Event Listener
                    onMessageReceived(rabbitMqHelper.DecodeMessage((e == null || e.Body == null) ? null : e.Body));

                    //Acknowledge receipt of messages to Queue
                    mqchannel.BasicAck(e.DeliveryTag, false);
                }