6

「SetConfigurationSettingPublisher」が削除されたため、Azure ストレージ v2.0 でこれをどのように変換できますか?

CloudStorageAccount.SetConfigurationSettingPublisher( 
( configName, configSetter ) =>
{
  // Provide the configSetter with the initial value
  configSetter( RoleEnvironment.GetConfigurationSettingValue( configName ) );

  RoleEnvironment.Changed += ( sender, arg ) =>
  {
    if( arg.Changes.OfType<RoleEnvironmentConfigurationSettingChange>( ).Any( (change) => 
        ( change.ConfigurationSettingName == configName ) ) )
    {
      // The corresponding configuration setting has changed, so propagate the value
      if( !configSetter( RoleEnvironment.GetConfigurationSettingValue( configName ) ) )
      {
        // In this case, the change to the storage account credentials in the
        // service configuration is significant enough that the role needs to be
        // recycled in order to use the latest settings (for example, the 
        // endpoint may have changed)
        RoleEnvironment.RequestRecycle();
      }
    }
  };
}

);

ありがとう

4

1 に答える 1

9

Windows Azure Storage Client Library 2.0 Breaking Changes & Migration Guideによると:

CloudStorageAccount.SetConfigurationSettingPublisher が削除されました。代わりに、 StorageCredentialsのメンバーが変更可能になり、ユーザーは提供された UpdateKey メソッドを介して特定のクライアントに関連付けられた StorageCredentials インスタンスを変更するだけで、より合理的な方法で同様のシナリオを実現できます。

アプリケーションの要件によっては、「Azure ストレージ クライアント 2.0 へのアップグレードCloudConfigurationManager.GetSetting()」で説明されているように、単にメソッドを直接使用することもできます。

var someSetting = CloudConfigurationManager.GetSetting(settingKey);

役割インスタンスの実行中に構成の変更に対応する必要がある場合は、ストレージ クライアント ライブラリの構成設定の読み取りと変更された設定の処理および役割トポロジの変更への対応RoleEnvironment.Changingで説明されているように、およびRoleEnvironment.Changedイベントにサブスクライブできます。

于 2013-07-22T19:54:20.043 に答える