gpt4 book ai didi

c# - Azure Functions V1 DI 的依赖项注入(inject)

转载 作者:行者123 更新时间:2023-12-02 07:05:51 25 4
gpt4 key购买 nike

我有一个关于 azure function v1 中的依赖注入(inject)的新问题。

实际情况:

我有一个 azure 的函数V1 http触发,我想在其中引用我的业务服务,就像我可以使用我的服务而无需重新发明轮子一样。我在网上搜索了一下,发现这个很有趣article来自微软。

但是,它似乎只适用于azure function v2(.net core),因为每当我尝试安装Microsoft.Azure.Functions.Extensions时,我总是出现以下错误:

NU1107 Version conflict detected for Microsoft.Azure.WebJobs. Install/reference Microsoft.Azure.WebJobs 3.0.5 directly to project FunctionApp2365431 to resolve this issue. 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 core(我可以在其中实现DI),另一个在Net Framework 461中)

Comparison

可以看到版本不同,.net core V2 azure function 是3.5V1 是2.2

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

这是执行上述步骤后的构建结果:

Build errors

我的问题是,如何在 Net 框架项目中设置 DI,例如。对于 Azure 函数 V1?

那么,为什么只有 azure function V2 设置 DI 的文档

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

提前致谢,

编辑:我的问题与此 StackOverFlow thread 不重复因为与 Microsoft 为 v2 azure 函数提供的解决方案相比,这是一种复杂的方法并且已经过时了。

我也看了这个有趣的video (还没测试),这里唯一的问题是我想使用微软(官方)提供的东西作为az func v2,而不是他开发的包。

最佳答案

正如 @silent 在他的评论中提到的,

这是微软的回应

Regarding to your query , here is the response from Azure Function prod team :

  1. There is no plan to abandon Azure function V1 , but Azure function V2 is recommended as it will get more new features in the future .

  2. For now , DI feature is supported by Azure function V2 only , if you need this feature , maybe migrating your app from V1 to V2 will be a good idea ,and this doc will be helpful : https://learn.microsoft.com/en-us/azure/azure-functions/functions-versions#migrating-from-1x-to-2x

所以到目前为止,唯一的方法是遵循此 video这是关于使用 AzureFunctions.Autofac 包在 Azure function V1 中实现 DI。

香港

关于c# - Azure Functions V1 DI 的依赖项注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56560727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com