diff --git a/extensions/Worker.Extensions.Abstractions/src/SupportsDeferredBindingAttribute.cs b/extensions/Worker.Extensions.Abstractions/src/SupportsDeferredBindingAttribute.cs
deleted file mode 100644
index b88551c43..000000000
--- a/extensions/Worker.Extensions.Abstractions/src/SupportsDeferredBindingAttribute.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the MIT License. See License.txt in the project root for license information.
-
-using System;
-
-namespace Microsoft.Azure.Functions.Worker.Extensions.Abstractions
-{
- ///
- /// Specifies if a binding attribute supports deferred binding when generating function metadata.
- /// This is to be used on input, output or trigger attributes that support deferred binding.
- ///
- [AttributeUsage(AttributeTargets.Class)]
- public class SupportsDeferredBindingAttribute : Attribute
- {
- }
-}
diff --git a/extensions/Worker.Extensions.Storage.Blobs/src/BlobInputAttribute.cs b/extensions/Worker.Extensions.Storage.Blobs/src/BlobInputAttribute.cs
index 78ab31abc..a2856cad2 100644
--- a/extensions/Worker.Extensions.Storage.Blobs/src/BlobInputAttribute.cs
+++ b/extensions/Worker.Extensions.Storage.Blobs/src/BlobInputAttribute.cs
@@ -5,7 +5,6 @@
namespace Microsoft.Azure.Functions.Worker
{
- [SupportsDeferredBinding]
public sealed class BlobInputAttribute : InputBindingAttribute
{
private readonly string _blobPath;
diff --git a/extensions/Worker.Extensions.Storage.Blobs/src/BlobStorageConverter.cs b/extensions/Worker.Extensions.Storage.Blobs/src/BlobStorageConverter.cs
deleted file mode 100644
index 3e0a6c96f..000000000
--- a/extensions/Worker.Extensions.Storage.Blobs/src/BlobStorageConverter.cs
+++ /dev/null
@@ -1,236 +0,0 @@
-// Copyright (c) .NET Foundation. All rights reserved.
-// Licensed under the MIT License. See License.txt in the project root for license information.
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using System.Threading;
-using System.Threading.Tasks;
-using Azure.Storage.Blobs;
-using Azure.Storage.Blobs.Specialized;
-using Microsoft.Azure.Functions.Worker.Converters;
-using Microsoft.Azure.Functions.Worker.Core;
-using Microsoft.Extensions.Options;
-using Microsoft.Extensions.Logging;
-
-namespace Microsoft.Azure.Functions.Worker
-{
- ///
- /// Converter to bind Blob Storage type parameters.
- ///
- internal class BlobStorageConverter : IInputConverter
- {
- private readonly IOptions _workerOptions;
- private readonly IOptionsSnapshot _blobOptions;
-
- private readonly ILogger _logger;
-
- public BlobStorageConverter(IOptions workerOptions, IOptionsSnapshot blobOptions, ILogger logger)
- {
- _workerOptions = workerOptions ?? throw new ArgumentNullException(nameof(workerOptions));
- _blobOptions = blobOptions ?? throw new ArgumentNullException(nameof(blobOptions));
- _logger = logger ?? throw new ArgumentNullException(nameof(logger));
- }
-
- public async ValueTask ConvertAsync(ConverterContext context)
- {
- return context?.Source switch
- {
- ModelBindingData binding => await ConvertFromBindingDataAsync(context, binding),
- CollectionModelBindingData binding => await ConvertFromCollectionBindingDataAsync(context, binding),
- _ => ConversionResult.Unhandled(),
- };
- }
-
- private async ValueTask ConvertFromBindingDataAsync(ConverterContext context, ModelBindingData modelBindingData)
- {
- if (!IsBlobExtension(modelBindingData))
- {
- return ConversionResult.Unhandled();
- }
-
- try
- {
- Dictionary content = GetBindingDataContent(modelBindingData);
- var result = await ConvertModelBindingDataAsync(content, context.TargetType, modelBindingData);
-
- if (result is not null)
- {
- return ConversionResult.Success(result);
- }
- }
- catch (Exception ex)
- {
- return ConversionResult.Failed(ex);
- }
-
- return ConversionResult.Unhandled();
- }
-
- private async ValueTask ConvertFromCollectionBindingDataAsync(ConverterContext context, CollectionModelBindingData collectionModelBindingData)
- {
- var blobCollection = new List