私はAzureキューストレージにデータを保存することを扱っています。そのために、現在、以下の2つのデータ型クラスがあります
[Serializable]
public class Task1Item
{
public int ID { get; set; }
public string Company { get; set; }
------
------
}
[Serializable]
public class Task2Item
{
public int ID { get; set; }
public string connectTo{ get; set; }
public string Port{ get; set; }
------
------
}
レコードをキューに挿入するために、以下の方法を使用しています
// For Task1Item
CloudQueueMessage msg = new CloudQueueMessage(item1.ToBinary<Task1Item>());
// For Task2Item
CloudQueueMessage msg = new CloudQueueMessage(item2.ToBinary<Task2Item>());
そして、私は別のキューから読み取る必要があります
var item1 = cloudQueueMessage1.FromMessage<Task1Item>();
var item2 = cloudQueueMessage2.FromMessage<Task2Item>();
ここでは、キュー ストレージを 1 つだけ使用したいので (より多くの taskitem があるため)、異なるタイプを 1 つのタイプのオブジェクトに結合する方法を教えてください。
注: ToBinary と FromMessage は単純な拡張機能です
public static byte[] ToBinary<T>(this T dns)
{
var binaryFormatter = new BinaryFormatter();
byte[] bytes = null;
using (var memoryStream = new MemoryStream())
{
binaryFormatter.Serialize(memoryStream, dns);
bytes = memoryStream.GetBuffer();
}
return bytes;
}
public static T FromMessage<T>(this CloudQueueMessage cloudQueueMessage)
{
var bytes = cloudQueueMessage.AsBytes;
using (var memoryStream = new MemoryStream(bytes))
{
var binaryFormatter = new BinaryFormatter();
return (T)binaryFormatter.Deserialize(memoryStream);
}
}
ありがとう。