C# 使用全局CloudStorageAccount变量
我有一个关于CloudStorageAccount变量的问题。我在代码中经常使用和声明它,我想知道将它声明为全局变量并在每个函数中使用它是否会导致冲突。我将用一个简单的例子来说明我的问题C# 使用全局CloudStorageAccount变量,c#,.net,azure,global-variables,C#,.net,Azure,Global Variables,我有一个关于CloudStorageAccount变量的问题。我在代码中经常使用和声明它,我想知道将它声明为全局变量并在每个函数中使用它是否会导致冲突。我将用一个简单的例子来说明我的问题 public class AzureQueueSvc : IQueueSvc { DoclQueue _queue; public AzureQueueSvc(DoclQueue queue) { _queue = queue; _queue.Conne
public class AzureQueueSvc : IQueueSvc
{
DoclQueue _queue;
public AzureQueueSvc(DoclQueue queue)
{
_queue = queue;
_queue.Connectionstring = ConfigurationManager.AppSettings["Microsoft.ServiceBus.ConnectionString"];
}
public CloudQueue GetQueue { get; }
public void CreateQueue()
{
CloudStorageAccount account = CloudStorageAccount.Parse(_queue.Connectionstring);
CloudQueueClient queueClient = account.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference(_queue.Name);
queue.CreateIfNotExists();
}
public bool QueueExists()
{
CloudStorageAccount account = CloudStorageAccount.Parse(_queue.Connectionstring);
CloudQueueClient queueClient = account.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference(_queue.Name);
if (queue.Exists())
return true;
else
return false;
}
public void SendMessage(DoclMessage message)
{
CloudStorageAccount account = CloudStorageAccount.Parse(_queue.Connectionstring);
CloudQueueClient queueClient = account.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference(_queue.Name);
queue.CreateIfNotExists();
CloudQueueMessage msg = new CloudQueueMessage(string.Format(message.ToString()));
queue.AddMessage(msg);
}
}
如您所见,我必须声明CloudStorageAccount、CloudQueueClient和CloudQueue 3次。将它们声明为全局变量并在我的方法中共享它们的用法是否会导致冲突?在您的特定示例中,只要您使用相同的存储帐户和队列名称,我认为您可以将它们声明为全局变量。HTH.您确定当类被多个用户使用时不会导致线程问题吗?只要这些是类的本地问题,即类级别的全局问题,而不是应用程序级别的问题(尤其是
CloudQueue
),并且没有标记为静态问题,我想您应该不会有问题。谢谢您的帮助!