2011-10-02 12 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のアドレス帳サンプル(http://code.msdn.microsoft.com/windowsazure/Windows-Azure-AddressBook-026fcbbb)を使用していましたが、 – markpirvine

答えて

0

共有の例では、私は同様のコードがあります二つの場所を見つけることができます。 1つはOnStart(RoleEntryPoint内)にあり、もう1つはDataLayerというクラス内の静的コンストラクタにあります。 DataLayerは、Webアプリケーション(IISで実行中)で使用されているように見えます。そのため、RoleEntryPointとは異なるプロセスの別のクラスです。

アプリケーションが起動する前に、RoleEntryPointのストレージがテーブルの作成中に初期化されているようです。 DataLayerの1つは、他のメソッド(接続文字列を解析してクライアントをインスタンス化する)でコードの繰り返しを避けるために、いくつかの変数を初期化しているようです。

関連する問題