Правильный способ вставить подобный интерфейсу интерфейс в функции azure - использовать внедрение зависимостей. Вам больше не нужно создавать функции stati c. Все, что вам нужно сделать, это зарегистрировать интерфейс и его реализацию в классе запуска, чтобы во время выполнения функций azure внедрили экземпляр правильной реализации вашего интерфейса. Рассмотрим следующий пример функции azure, которая использует интерфейс ISqlHelper. Я пишу свой класс функции non-stati c следующим образом
public class NotifyMember
{
private readonly ISqlHelper _sqlHelper;
public NotifyMember(ISqlHelper sqlHelper)
{
_sqlHelper = sqlHelper ?? throw new ArgumentNullException(nameof(sqlHelper));
}
[FunctionName(nameof(NotifyMember))]
public async Task Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "multipliers/{id:guid}")] HttpRequest req,
string id, ILogger logger)
{//Perform function work here}
}
И регистрирую свой экземпляр класса, который реализует ISqlHelper в моем классе запуска, как
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.AddTransient<ISqlHelper, SqlHelper>();
}
}
Для получения дополнительной информации о том, как для этого обратитесь Внедрение зависимостей в Azure Функции