我们正在转换一个应用程序从使用MSMQ到Azure服务总线。我们有一个对象(消息,类型)如下所示:
[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);

在查看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; }
}发布于 2019-04-17 09:47:52
我对类的定义如下:
[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
发布于 2015-12-23 02:16:46
您需要用[DataContract]装饰您的消息类,并使用[DataMember]发送每个属性。
https://stackoverflow.com/questions/34424107
复制相似问题