Autofac Dependency Injection in Azure Function

荒凉一梦 提交于 2020-01-23 06:20:12

问题


I am trying to implement DI using Autofac IOC in Azure function. I need to build the container, but not sure where to put the code to build the container


回答1:


I think for now you would need to do something ugly like:

public static string MyAwesomeFunction(string message)
{
    if (MyService == null)
    {
        var instantiator = Initialize();
        MyService = instantiator.Resolve<IService>();
    }

    return MyService.Hello(message);
}

private static IService MyService = null;

private static IContainer Initialize()
{
    // Do your IoC magic here
}



回答2:


I did write a blog entry for doing dependency injection with Autofac in Azure Functions. Have a look here: Azure Function Dependency Injection with AutoFac: Autofac on Functions

It follows a similar approach like the one by Boris Wilhelms. Another implementation based on Boris' approach can be found on github: autofac dependency injection

-- update ---

With Azure Function v2 it is possible to create nuget packages based on .net standard. Have a look onto Azure Functions Dependency Injection with Autofac: Autofac on Functions nuget Package




回答3:


While Azure Functions does not support DI out of the box, it is possible to add this via the new Extension API. You can register the container using an IExtensionConfigProvider implementation. You can find a full example DI solution in Azure here https://blog.wille-zone.de/post/azure-functions-proper-dependency-injection/.




回答4:


Azure Functions doesn't support dependency injection yet. Follow this issue for the feature request https://github.com/Azure/Azure-Functions/issues/299




回答5:


You can do it using a custom [inject] attribute. See example here https://blog.wille-zone.de/post/azure-functions-proper-dependency-injection/



来源:https://stackoverflow.com/questions/44397407/autofac-dependency-injection-in-azure-function

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!