将匿名对象发送到Azure中的服务总线队列
本文关键字:服务 总线 队列 Azure 对象 | 更新日期: 2023-09-27 18:14:16
我在c#中有一个方法,它将一组属性包装在一个类中,并将其推送到azure服务总线队列。需要推送的类型太多了,所以我编写了一个方法,该方法接受匿名对象,并只使用BrokeredMessaging类将其发送到服务总线队列。
这一行:
//I intially used the string type to know what type of class is passed
//and then using switch statement, handle each case accordingly.
//But it becomes a very long list of switch statements and I don't want that.
public static bool QueueUp(Object obj, string type)
{
var msg = new BrokeredMessage(obj);
_sendObjClient.Send(msg);
}
这个代码不能工作。我想保存许多地方,这个方法被调用从传入显式类型的对象;它们应该发送任何对象,我想让这部分代码完成最困难的工作,并将其序列化发送到队列。
刚刚被介绍到System.Reflection
命名空间,但我还没有抓住如何实际实现我的目标。
你必须将你的对象的类和属性标记为可序列化的——来自如何使用服务总线队列:
发送到(和从)服务总线队列接收的消息是实例BrokeredMessage类的。BrokeredMessage对象有一组标准属性(如Label和timeolive),一个字典用于保存特定于应用程序的自定义属性,以及任意应用程序数据。的主体方法的构造函数传递任何可序列化的对象BrokeredMessage,然后适当的DataContractSerializer将用于序列化对象。另外,System.IO.Stream可以提供。
然后查看SerializableAttribute Class来学习如何将你的类标记为Serializable