public void Initialize(ExtensionConfigContext context) { if (context == null) { throw new ArgumentNullException("context"); } var encryptedBlobAttributeRule = context.AddBindingRule <EncryptedBlobAttribute>(); encryptedBlobAttributeRule.When("Access", FileAccess.Read).BindToInput <ICloudBlob>(new ICloudBlobAsyncConverter(_keyVaultClient, _keyNameProvider)); encryptedBlobAttributeRule.When("Access", FileAccess.ReadWrite).BindToInput <ICloudBlob>(new ICloudBlobAsyncConverter(_keyVaultClient, _keyNameProvider)); encryptedBlobAttributeRule.BindToCollector <EncryptedBlob>(config => new EncryptedBlobAsyncCollector(config, _keyVaultClient, _keyNameProvider)); encryptedBlobAttributeRule.AddOpenConverter <ICloudBlob, OpenType>(typeof(ICloudBlobToOpenTypeConverter <>), _keyVaultClient, _logger); context.AddConverters(_keyVaultClient, _logger); }