首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure服务总线:从对象创建BrokeredMessage

Azure服务总线:从对象创建BrokeredMessage
EN

Stack Overflow用户
提问于 2015-12-22 20:41:28
回答 2查看 1.5K关注 0票数 2

我们正在转换一个应用程序从使用MSMQ到Azure服务总线。我们有一个对象(消息,类型)如下所示:

代码语言:javascript
复制
[Serializable]
public class LeadSubmissionMessage
{
    public long LeadId { get; set; }
    public long UserId { get; set; }
    public DateTime DateTime { get; set; }
}

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

代码语言:javascript
复制
BrokeredMessage brokeredMessage = new BrokeredMessage(message); 

在查看other similar posts时,我尝试了以下方法:

代码语言:javascript
复制
BrokeredMessage brokeredMessage = new BrokeredMessage(message, new DataContractSerializer(typeof(LeadSubmissionMessage)));  

但结果是一样的。

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

编辑:

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

代码语言:javascript
复制
[DataContract]
[Serializable]
public class LeadSubmissionMessage
{
    [DataMember]
    public long LeadId { get; set; }
    [DataMember]
    public long UserId { get; set; }
    [DataMember]
    public DateTime DateTime { get; set; }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-17 09:47:52

我对类的定义如下:

代码语言:javascript
复制
[DataContract]
[Serializable]
public class EventMessageDto
{
    [DataMember]
    public Guid EventId { get; set; }

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

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

创建消息时使用以下内容:

代码语言:javascript
复制
var message = new BrokeredMessage(eventMessageDto, new DataContractSerializer(typeof(EventMessageDto)));

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

票数 1
EN

Stack Overflow用户

发布于 2015-12-23 02:16:46

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34424107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档