Я могу вставить ключ строки и ключ раздела в хранилище таблиц Azure:
TableOperation insertOperation = TableOperation.Insert (customer1);
table.Execute (insertOperation);
StoreKeyInQ (insertOperation);
// Create a new customer entity.
CustomerEntity customer1 = new CustomerEntity("URL", "Name"+Guid.NewGuid());
customer1.path = fullpath;
CustomerEntity выглядит следующим образом:
public class CustomerEntity : TableEntity
{
public CustomerEntity(string ID, string Name)
{
this.PartitionKey = ID;
this.RowKey = Name;
}
public CustomerEntity() { }
public string path { get; set; }
}
Я написал код для создания очереди, как показано ниже:
public void StoreKeyInQ(TableOperation insertOperation)
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
//craete a queue client
CloudQueueClient cloudQueueClient = storageAccount.CreateCloudQueueClient();
//retrive a reference to a container
CloudQueue cloudQueue = cloudQueueClient.GetQueueReference("myqueue");
//create the queue if does not exists
cloudQueue.CreateIfNotExists();
// Create a message and add it to the queue.
CloudQueueMessage message = new CloudQueueMessage(insertOperation); //Here is the error as "CloudQueueMessage" can't take a argument type "TableOperation"
queue.AddMessage(message);
}
Как устранить эту ошибку? Как передать ключ «rowkey» и «partition» хранилища таблиц в очередь?
EDIT:
Я добавил эти две строки для сериализации, это нормально?
System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(customerEntity.GetType());
CloudQueueMessage message = new CloudQueueMessage(x.ToString());
Моя очередь показывает вот так; однако, не уверен, правильно ли это или нет? Может кто-нибудь уточнить, верно ли это?