We already have seen that there are two different execution models for .NET Based Azure Functions. The two execution models are in-process and isolated worker process. In this article, we are going to have a quick overview of how to setup dependency injection in .NET Based Azure Functions.
As we know, In-Process functions can be of two types –
- Functions which contain C# Script (.csx) files
- In-Process Class Library Functions
Whatever we discuss in this section is going to be applicable only for in-process class library functions. We have created one
In-Process class library function in one of the previous articles. Refer this article to create the project.
Once the project is created, add a new class
Startup to the class library. Then let’s add a package Microsoft.Azure.Functions.Extensions to this project. In the Startup class, we can do two things:
- Add an assembly attribute
FunctionsStartup, and pass the fully qualified name of the Startup class
- Inherit the Startup class from
The code snippet given below shows a sample code of
Startup class. In addition to startup class, the code snippet also shows a sample service interface and its implementation. This service is then registered in the dependency injection container in the
Now, we can inject
IMyService to any function, and if we run the function, the passed message will be logged to the console.
So, now we know how the dependency injection can also be set up in Azure Functions.
Isolated Worker Process Functions
We already know that these type of functions are console applications, which runs independently of the host process. This kind of Azure function creates an IHost instance. This IHost instance can be used for setting up dependency injection for the process. The code for setting up dependency injection is going to be similar to any
ASP .NET Core web application.
I hope you find this information helpful. Let me know your thoughts.