Azure Functions V1 DI的依赖项注入

时间:2019-06-12 11:07:49

标签: c# .net azure dependency-injection azure-functions

关于天蓝色功能v1 中的依赖项注入,我有一个新问题。

实际情况:

我有一个蔚蓝的功能V1 http triggered,我想在其中引用我的业务服务,而无需重新发明轮子就可以使用我的服务。 我在互联网上进行搜索,发现来自Microsoft的这个有趣的article

但是,它似乎只能与 azure函数v2 (。net核心)一起使用,因为每当我尝试安装Microsoft.Azure.Functions.Extensions时,总是会遇到以下错误:

  

检测到Microsoft.Azure.WebJobs的NU1107版本冲突。   直接将Microsoft.Azure.WebJobs 3.0.5安装/引用到项目   FunctionApp2365431解决此问题。 FunctionApp2365431->   Microsoft.Azure.Functions.Extensions 1.0.0-> Microsoft.Azure.WebJobs   (> = 3.0.5)FunctionApp2365431-> Microsoft.NET.Sdk.Functions 1.0.28   -> Microsoft.Azure.WebJobs(> = 2.2.0 && <2.4.0)

以下是两个项目的dll之间的比较(一个在.net内核中(我可以实现DI),另一个在Net框架461中)

Comparison

您会看到版本不同,.net核心 V2天青函数为3.5 ,而 V1为2.2

我尝试按照错误要求手动引用/安装软件包版本,并要求我也更新NewtonSoft.Json软件包,我也这样做了,之后我可以强制执行安装Microsoft.Azure.Functions.Extensions 但是,它破坏了项目,我无法停止出错

完成上述步骤后,生成结果如下:

Build errors

我的问题是 如何在Net Framework项目中设置 DI例如对于Azure功能V1

然后,为什么只有用于天蓝色功能V2的文档才能设置DI

V1是否已被弃用,或者Microsoft不再支持V1天蓝色功能?因为这很奇怪!

预先感谢

编辑: 我的问题不是这个StackOverFlow thread的重复,因为与Microsoft为v2 Azure功能提供的解决方案相比,这是一种复杂且过时的方法。

我还观看了这个有趣的video(仍然没有对其进行测试),这里唯一的问题是我想使用Microsoft(官方)提供的与z func v2类似的东西,而不是软件包他已经发展了。

1 个答案:

答案 0 :(得分:0)

如@silent在他的评论中所述,

这是Microsoft的回复

  

关于您的查询,这是Azure Function的响应   产品团队:

     
      
  1. 没有计划放弃Azure功能V1,但建议使用Azure功能V2,因为它将在将来获得更多新功能。

  2.   
  3. 目前,仅Azure功能V2支持DI功能,如果需要此功能,则可能需要将应用程序从V1迁移到V2   一个好主意,此文档将对您有所帮助:   https://docs.microsoft.com/en-us/azure/azure-functions/functions-versions#migrating-from-1x-to-2x

  4.   

因此,到目前为止,唯一的方法就是遵循此video,这是关于使用AzureFunctions.Autofac程序包在Azure函数V1中实现 DI

香港