我试图在我的功能应用程序中使用MEF。我的要求是访问5-10个外部API,通过HTTP触发函数获取、聚合和返回数据。我需要基于某种逻辑动态地解决外部依赖关系。这些外部组件已经构建并导出。我需要将它们与元数据一起导入。
我注意到在VS 2017中创建的默认函数应用程序中已经引用了System.ComponentModel.Composition程序集。不知道该怎么做。如果在Azure函数中可能的话,示例设置代码将是有帮助的。
发布于 2017-10-19 07:24:32
基于您的场景,我通过VS2017创建了我的Http触发器函数来测试这个问题。我跟踪了简单计算器MEF应用。这是我的项目的结构如下:

在不向Extensions文件夹中添加支持Mod操作的扩展库的情况下,您可以检索以下结果:

虽然添加了ExtendedOperations.dll,但Mod操作可以按预期工作如下:

在本地,我添加了通过硬代码初始化DirectoryCatalog的路径。当部署到azure端时,您的预编译函数库将部署在D:\home\site\wwwroot\bin>下,您可以在其中添加Extensions文件夹,并使用以下代码检索扩展文件夹:
Path.Combine(System.Environment.GetEnvironmentVariable("HOME"), @"site\wwwroot\bin\<your-extensions-folder>")另外,您可以利用古都并导航到D:\home\site\wwwroot\<your-function-name>,然后在它下面添加Extensions文件夹,然后用path Path.Combine(System.Environment.GetEnvironmentVariable("HOME"), @"site\wwwroot\<your-function-name>\<your-extensions-folder>")插入您的DirectoryCatalog。

https://stackoverflow.com/questions/46788994
复制相似问题