Próbuję dodać niestandardową właściwość do kolekcji BrokeredMessage.Properties
przed wysłaniem jej do magistrali usług Azure. Typ właściwości niestandardowej to element wyliczeniowy:Magistrala usług Windows Azure - BrokerMessage.Properties z wartością wyliczeniową
[Serializable, DataContract]
public enum FooBar
{
[EnumMember]
Foo = 0,
[EnumMember]
Bar = 1
}
Próbowałem także wielu kombinacji atrybutów i wersji bez atrybutów.
Jest to kod, który dodaje właściwość i wysyła wiadomość:
var brokeredMessage = new BrokeredMessage(new MessageObject(){ //etc });
brokeredMessage.Properties.Add("FooBar", FooBar.Foo);
queueClient.Send(brokeredMessage);
następujący błąd jest zwracany, gdy próbuje wysłać wiadomość:
System.Runtime.Serialization.SerializationException : Serialization operation failed due to unsupported type Namespace.FooBar.
Próbowałem wyśledzić bardziej szczegółową dokumentację na temat ograniczeń BrokeredMessage.Properties
(jeśli istnieją) i nie można znaleźć niczego, co określa, że można używać tylko typów pierwotnych.
Jakieś pomysły, dlaczego to nie działa?
Edit:
Gdyby powiedział Używam V2.1.0.0 z Microsoft.ServiceBus.
Dzięki za odpowiedź. Stało się to jasne, chociaż wydaje się, że brakuje na ten temat dokumentacji (chyba, że ktoś może wskazać mi kierunek)? Zawsze wolę konwersję wartości wyliczeniowych na int, a nie na ciąg znaków - więc jest to opcja, z którą poszedłem. – GaryJL