Wir konvertieren eine App von MSMQ zu Azure Service Bus. Wir haben ein Objekt (Nachricht, Typ von), das so aussieht:

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

Beim Erstellen einer BrokeredMessage aus dem Objekt stellte ich zunächst fest, dass es funktioniert, da es kompiliert wurde und keinen Laufzeitfehler auslöste, aber dann wurden keine Nachrichten im Servicebus angezeigt. Als ich es mir beim Debuggen ansah, stellte ich fest, dass es das Objekt nicht wirklich serialisiert.

BrokeredMessage brokeredMessage = new BrokeredMessage(message); 

enter image description here

Beim Betrachten von anderen ähnlichen Posts habe ich Folgendes versucht:

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

Aber das bringt das gleiche Ergebnis.

Was muss ich tun, damit das Objekt tatsächlich zu einer XML-Zeichenfolge wird, die an die Nachricht gesendet wird?

BEARBEITEN:

Versuchte das auch. Gleiches Ergebnis:

[DataContract]
[Serializable]
public class LeadSubmissionMessage
{
    [DataMember]
    public long LeadId { get; set; }
    [DataMember]
    public long UserId { get; set; }
    [DataMember]
    public DateTime DateTime { get; set; }
}
2
Casey Crookston 22 Dez. 2015 im 23:41

2 Antworten

Beste Antwort

Ich definiere die Klasse folgendermaßen:

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

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

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

Und die Nachricht wird damit erstellt:

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

Ich verwende dieses Nuget-Paket: WindowsAzure.ServiceBus.3.3.1

1
DanielV 17 Apr. 2019 im 09:47

Sie müssen Ihre Nachrichtenklasse mit [DataContract] und jeder Eigenschaft, die Sie senden möchten, mit [DataMember] dekorieren.

0
Slava Asipenko 23 Dez. 2015 im 02:16