8
コレクションにカスタムプロパティを追加しようとしていますが、Azureサービスバスに送信しています。カスタムプロパティタイプは列挙型です:Windows Azureサービスバス - Enum値を持つBrokeredMessage.Properties
[Serializable, DataContract]
public enum FooBar
{
[EnumMember]
Foo = 0,
[EnumMember]
Bar = 1
}
また、属性のないさまざまな組み合わせを試しました。
これは、プロパティを追加し、メッセージを送信するコードです:
var brokeredMessage = new BrokeredMessage(new MessageObject(){ //etc });
brokeredMessage.Properties.Add("FooBar", FooBar.Foo);
queueClient.Send(brokeredMessage);
次のエラーがメッセージ送信しようとしたときに返される:
System.Runtime.Serialization.SerializationException : Serialization operation failed due to unsupported type Namespace.FooBar.
を私が追跡しようとしましたBrokeredMessage.Properties
の制限についての詳細なドキュメント(存在する場合)、プリミティブ型のみを使用できることを指定するものは見つかりません。
なぜこれが機能しないのかについてのアイデアはありますか?
編集:
私はMicrosoft.ServiceBusのV2.1.0.0を使用していますと述べている必要があります。
あなたの答えをありがとう。これは明白になりましたが、それについての文書がないようです(誰かが私の指向で私を指摘しない限り)。私は常にenum値を文字列ではなくintに変換するほうが好きです。 – GaryJL