在Azure函数中使用MEF App
我想在我的函数应用程序中使用MEF。我的要求是访问5-10个外部API,通过HTTP触发函数获取,聚合和返回数据。我需要基于某种逻辑动态地解析外部依赖关系。这些外部组件已经构建并导出。我需要将它们与元数据一起导入。在Azure函数中使用MEF App
我观察到System.ComponentModel.Composition
程序集已经在VS 2017中创建的默认函数应用程序中引用。不知道如何继续。如果在Azure函数中有可能,示例设置代码将会很有帮助。
根据你的场景,我通过VS2017创建了我的Http Trigger函数来测试这个问题。我跟着 Simple Calculator MEF Application。这里是我的项目的结构,如下所示:
无需添加它支持Mod运算到Extensions
文件扩展名的lib,你可以检索结果如下:
虽然增加了ExtendedOperations.dll
,但Mod操作仍可按照以下方式正常工作:
在我的本地方面,我添加了通过硬代码初始化DirectoryCatalog
的路径。当部署到蔚蓝的一面,你的预编译功能的lib将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
文件夹,然后使用路径Path.Combine(System.Environment.GetEnvironmentVariable("HOME"), @"site\wwwroot\<your-function-name>\<your-extensions-folder>")
初始化您的DirectoryCatalog
。
完美......... – Venky
有人问类似[问题](https://github.com/Azure/Azure-Functions/issues/550)。我建议你可以使用这个示例[Simple Calculator MEF Application](https://code.msdn.microsoft.com/windowsdesktop/Simple-Calculator-MEF-1152654e/sourcecode?fileId=18843&pathId=1181778681)来使用你的天蓝色功能应用来缩小这个问题。 –
我在蔚蓝功能社区提出这个问题。虽然没有回应。 https://github.com/Azure/Azure-Functions/issues/550 – Venky