C# Windows Azure服务总线-BrokeredMessage。具有枚举值的属性
在将其发送到Azure服务总线之前,我正在尝试向C# Windows Azure服务总线-BrokeredMessage。具有枚举值的属性,c#,.net,serialization,azure,azureservicebus,C#,.net,Serialization,Azure,Azureservicebus,在将其发送到Azure服务总线之前,我正在尝试向BrokeredMessage.Properties集合添加自定义属性。自定义属性类型是枚举: [Serializable, DataContract] public enum FooBar { [EnumMember] Foo = 0, [EnumMember] Bar = 1 } 我还尝试了许多属性的组合,以及一个没有属性的版本 这是添加属性并发送消息的代码: var brokeredMessage = new
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.
尝试发送邮件时返回以下错误:
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。简而言之,您只能使用简单的类型,如字符串、整数 对于您的情况,您可以尝试两种方法
你自己选择,哪一个更适合你。谢谢你的回答。这一点变得很清楚,尽管似乎缺少关于它的文档(除非有人能告诉我它的方向?),但我总是喜欢将枚举值转换为int而不是字符串,所以我选择了这个选项。