我正在尝试在我的函数应用程序中使用 MEF。我的要求是访问 5-10 个外部 API,通过 HTTP 触发函数获取、聚合和返回数据。我需要根据某种逻辑动态解决外部依赖关系。这些外部组件已经构建并导出。我需要将它们与元数据一起导入。
我观察到 System.ComponentModel.Composition
程序集已在 VS 2017 中创建的默认函数应用中引用。不知道如何继续。如果可以在 Azure 函数中使用,示例设置代码将会很有帮助。
最佳答案
根据您的情况,我通过 VS2017 创建了 Http Trigger 函数来测试此问题。我关注了 Simple Calculator MEF Application 。这是我的项目的结构如下:
不添加支持Mod操作的扩展lib到Extensions
文件夹中,您可以检索到以下结果:
同时添加了ExtendedOperations.dll
,Mod 操作可以按预期工作,如下所示:
在我本地,我添加了初始化路径 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>")
.
关于c# - 在 Azure 函数应用程序中使用 MEF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46788994/