Azure Service Bus:从Object创建BrokeredMessage

问题描述 投票:2回答:2

我们正在将应用程序从使用MSMQ转换为Azure Service Bus。我们有一个对象(消息,类型),如下所示:

[Serializable]
public class LeadSubmissionMessage
{
    public long LeadId { get; set; }
    public long UserId { get; set; }
    public DateTime DateTime { get; set; }
}

在从对象创建BrokeredMessage时,起初我认为它正在工作,因为它编译并没有抛出运行时错误,但是后来没有消息显示在服务总线中。因此,当我在调试中看到它时,我意识到它实际上并不是序列化对象。

BrokeredMessage brokeredMessage = new BrokeredMessage(message); 

enter image description here

在看other similar posts时,我尝试了这个:

BrokeredMessage brokeredMessage = new BrokeredMessage(message, new DataContractSerializer(typeof(LeadSubmissionMessage)));  

但这会得到相同的结果。

我需要做什么才能使对象实际成为提交给消息的xml字符串?

编辑:

也试过这个。相同的结果:

[DataContract]
[Serializable]
public class LeadSubmissionMessage
{
    [DataMember]
    public long LeadId { get; set; }
    [DataMember]
    public long UserId { get; set; }
    [DataMember]
    public DateTime DateTime { get; set; }
}
c# azure serialization azureservicebus
2个回答
1
投票

我像这样定义类:

[DataContract]
[Serializable]
public class EventMessageDto
{
    [DataMember]
    public Guid EventId { get; set; }

    [DataMember]
    public string EventType { get; set; }

    [DataMember]
    public string EventData { get; set; }
}

并使用以下方法创建消息:

var message = new BrokeredMessage(eventMessageDto, new DataContractSerializer(typeof(EventMessageDto)));

我正在使用这个nuget包:WindowsAzure.ServiceBus.3.3.1


0
投票

您需要使用[DataContract]装饰您的邮件类,并使用[DataMember]发送您要发送的每个属性

© www.soinside.com 2019 - 2024. All rights reserved.