2011-10-02 40 views
0

我一直在尋找一些Azure示例,並圍繞表存儲進行一些常規搜索。我注意到了一些使用OnStart和靜態構造函數的模式。例如,以下類型的代碼可以在兩個位置找到:Azure表存儲OnStart構造函數查詢

// Get connection string and table name from settings. 
connectionString = RoleEnvironment.GetConfigurationSettingValue("StorageConnectionString"); 
tableName = RoleEnvironment.GetConfigurationSettingValue("TableName"); 

// Reference storage account from connection string. 
storageAccount = CloudStorageAccount.Parse(connectionString); 

// Create Table service client. 
tableClient = storageAccount.CreateCloudTableClient(); 

我的問題是爲什麼在這兩個位置?當然,這只是重複?一旦我們開始使用數據類型,靜態構造函數將被調用,而OnStart將在應用程序啓動時運行。

我個人認爲靜態構造函數更有意義。

我只是想確保我理解正確的事情,

馬克

+0

你能分享一個你看到這個的例子嗎?難道靜態構造函數和OnStart實現在同一個角色中處於不同的角色或不同的進程中(如ASP.NET和相應的RoleEntryPoint)? – smarx

+0

我使用Windows Azure AddressBook示例(http://code.msdn.microsoft.com/windowsazure/Windows-Azure-AddressBook-026fcbbb) – markpirvine

回答

0

在您共享的,我能找到兩個地方有類似的代碼的例子。一個在OnStart中(在RoleEntryPoint中),另一個在名爲DataLayer的類中的靜態構造函數中。 DataLayer似乎用於Web應用程序(在IIS下運行),因此在與RoleEntryPoint不同的進程中使用不同的類。

RoleEntryPoint中的一個似乎是在應用程序啓動之前初始化存儲(創建表)。 DataLayer中的一個似乎正在初始化一些變量,以避免其他方法中的代碼重複(解析連接字符串,實例化客戶端)。