我正在使用Microsoft Azure的庫。我試圖動態地返回一個容器列表,我可以將它作爲參數傳遞給Microsoft Azure的代碼。兩種方法都屬於同一類。無法將方法1中的列表<string>傳遞給方法2
ListContainer()
static public List<string> ListContainer(StartConfig config)
{
List<string> container = new List<string>();
if (config == null || config.BlobClient == null)
{
config = Program.GetConfig();
}
//Get the list of the blob from the above container
IEnumerable<CloudBlobContainer> containers = config.BlobClient.ListContainers();
foreach (CloudBlobContainer item in containers)
{
container.Add(item.Name);
}
//Adding a print statement
Console.WriteLine(String.Join("\n", container));
Console.WriteLine("\n");
return container;
}
GetConfig()
public static StartConfig GetConfig()
{
StartConfig config = new StartConfig();
// Retrieve storage account from connection string.
config.StorageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the blob object.
config.BlobClient = config.StorageAccount.CreateCloudBlobClient();
//Get a reference to a container to use for the sample code, and create it if it does not exist.
config.Container = config.BlobClient.GetContainerReference(//List of Container names which are returned from ListContainer());
//Create the container if it does not exisit.
config.Container.CreateIfNotExists();
return config;
}
我累到只需調用方法ListContainer()
爲var test = ListContiner(null)
,並把我的GetConfig()
內。當我這樣做時,我會得到一個StackOverflowException。這是因爲ListContainer
正在檢查以確保config
不爲空,然後運行GetConfig()
並將其分配給配置。如果任何人有任何想法如何簡單地填充config.Container = config.BlobClient.GetContainerReference(CONTAINER_NAME);
在GetConfig()
與容器列表ListContainers()
這將是驚人的!
你能提供一點我怎麼會去這樣做的「您需要配置一個代碼示例被傳遞給它和一名保護自己的衛兵「? – jdave
我已經做了。方法開始處的兩個if將針對空配置和config.BlobClient保護您的方法。 –