c# - 在 Azure 函数应用程序中使用 MEF

标签 c# azure mef azure-functions composition

我正在尝试在我的函数应用程序中使用 MEF。我的要求是访问 5-10 个外部 API,通过 HTTP 触发函数获取、聚合和返回数据。我需要根据某种逻辑动态解决外部依赖关系。这些外部组件已经构建并导出。我需要将它们与元数据一起导入。

我观察到 System.ComponentModel.Composition 程序集已在 VS 2017 中创建的默认函数应用中引用。不知道如何继续。如果可以在 Azure 函数中使用,示例设置代码将会很有帮助。

最佳答案

根据您的情况,我通过 VS2017 创建了 Http Trigger 函数来测试此问题。我关注了 Simple Calculator MEF Application 。这是我的项目的结构如下:

enter image description here

不添加支持Mod操作的扩展lib到Extensions文件夹中,您可以检索到以下结果:

enter image description here

同时添加了ExtendedOperations.dll ,Mod 操作可以按预期工作,如下所示:

enter image description here

在我本地,我添加了初始化路径 DirectoryCatalog通过硬代码。部署到azure端时,您的预编译函数库将部署在D:\home\site\wwwroot\bin>下,您可以添加您的 Extensions文件夹并使用以下代码来检索您的扩展文件夹:

Path.Combine(System.Environment.GetEnvironmentVariable("HOME"), @"site\wwwroot\bin\<your-extensions-folder>")

此外,您可以利用 kudu并导航至D:\home\site\wwwroot\<your-function-name> ,然后添加您的 Extensions其下的文件夹,然后初始化您的 DirectoryCatalog路径为Path.Combine(System.Environment.GetEnvironmentVariable("HOME"), @"site\wwwroot\<your-function-name>\<your-extensions-folder>") .

enter image description here

关于c# - 在 Azure 函数应用程序中使用 MEF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46788994/

相关文章:

azure - 无法将新 VM 添加到 Azure 中的现有云服务

c# - 将 Unity 的 Resolve 用于 MEF 填充的惰性列表

c# - 如何明确、精确地控制构图范围?

c# - 没有异常的错误处理

c# - 单选按钮验证

c# - 在 Winforms C# 中编辑 Appsettings

c# - 避免或接受中断编辑并继续的 C# 构造?

Azure - 资源组位置的用途是什么?

azure - (Azure) 如何从逻辑应用中的表存储获取并比较时间戳日期?

c# - Caliburn Micro -> 从多个 View /用户控件/自定义控件组合 View